pomelo基于nodejs服务器开源框架,比较牛逼的!

1、安装nodejs(官网下载地址) 安装python等 具体见官网说明

2、安装pomelo(见官方步骤)或者 http://blog.csdn.net/wangqiuyun/article/details/9243263

3、demo无法运行说明,1.1.1版创建出的demo浏览器点start server无响应,用firebug发现报“ReferenceError: Buffer is not defined” 这是bug解决办法 我不会用 所以我不用浏览器测试,采用非浏览器测试 (不过这说明你的环境配置成功了)
4、自己编译libpomelo库

(1)下载gyp   命令行:git clone https://github.com/martine/gyp.git  没有安装git的童鞋 可以直接下zip

  进入gyp目录 命令行 执行 setup.py install  安装gyp

(2)下载libpomelo  命令行:git clone https://github.com/NetEase/libpomelo.git 或者 下载zip

  使用gyp创建 libpomelo工程。 cmd 到 gyp根目录 执行 gyp.bat --depth=. libpomelo根路径/pomelo.gyp -Dlibrary=static_library -DTO=pc 

成功之后就会在libpomelo下创建出vs工程:

(3)编译libpomelo静态库

  打开以上工程,选则整个解决方案,生成解决方案 就会编译出静态库 jansson.lib libpomelo.lib libuv.lib

(4)如何使用libpomelo.lib

创建C++ win32工程,引用静态库

A、添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录。
B、添加文件引用的lib静态库路径:工程---属性---配置属性---链接器---常规---附加库目录:加上lib文件存放目录。
C 然后添加工程引用的lib文件名:工程---属性---配置属性---链接器---输入---附加依赖项:加上lib文件名。

说明:libpomelo没有提完整的头文件路径 libpomelo\include只包含libpomelo自身的 jansson libuv 头文件需要去\libpomelo\deps下查找

最终的include文件如图:

(5)libuv.lib库运行需要 ws2_32.lib IPHLPAPI.lib Psapi.lib 按照“然后添加工程引用的lib文件名:工程---属性---配置属性---链接器---输入---附加依赖项:加上lib文件名” 添加几个库

(6)运行代码测试:

#ifdef _WIN32
#include <winsock2.h>
#else
#include <unistd.h>
#endif
#include <string.h>
#include <stdlib.h>
#include "pomelo.h" const char *ip = "127.0.0.1";
int port = ; // request callback
void on_request_cb(pc_request_t *req, int status, json_t *resp) {
if(status == -) {
printf("Fail to send request to server.\n");
} else if(status == ) {
char *json_str = json_dumps(resp, );
if(json_str != NULL) {
printf("server response: %s\n", json_str);
free(json_str);
}
} // release relative resource with pc_request_t
json_t *msg = req->msg;
pc_client_t *client = req->client;
json_decref(msg);
pc_request_destroy(req); pc_client_stop(client);
} void do_request(pc_client_t *client) {
// compose request
const char *route = "connector.entryHandler.entry"; //改成默认web-server的设置
json_t *msg = json_object();
json_t *str = json_string("hi~");
json_object_set(msg, "msg", str);
// decref for json object
json_decref(str); pc_request_t *request = pc_request_new();
pc_request(client, request, route, msg, on_request_cb);
} // disconnect event callback.
void on_close(pc_client_t *client, const char *event, void *data) {
printf("client closed: %d.\n", client->state);
} int main() {
// create a client instance.
pc_client_t *client = pc_client_new(); struct sockaddr_in address; memset(&address, , sizeof(struct sockaddr_in));
address.sin_family = AF_INET;
address.sin_port = htons(port);
address.sin_addr.s_addr = inet_addr(ip); // add some event callback.
pc_add_listener(client, PC_EVENT_DISCONNECT, on_close); // try to connect to server.
if(pc_client_connect(client, &address)) {
printf("fail to connect server.\n");
pc_client_destroy(client);
return ;
} do_request(client); // main thread has nothing to do and wait until child thread return.
pc_client_join(client); // release the client
pc_client_destroy(client); return ;
}

成功后的提示 :

[原]pomelo开发环境搭建的更多相关文章

  1. pomelo 开发环境搭建

    开发前提条件:  Windows系统,请确保你的Windows系统包括源代码编译工具.Node.js的源代码主要由C++代码和JavaScript代码构成,可是却用gyp工具来做源代码的项目管理,该工 ...

  2. [原]Android开发环境搭建

    [Date]2014-04-20 [Author]wintys (wintys@gmail.com) http://wintys.cnblogs.com [Keywords]android . 离线a ...

  3. [zz] pomelo windows 环境下开发环境搭建

    原文链接:http://nodejs.netease.com/topic/515279a0b5a2705b5a000983 本文主要介绍下 windows 下跑通 pomelo 简单例子的过程 开发前 ...

  4. (转)PhoneGap开发环境搭建

    (原)http://www.cnblogs.com/Random/archive/2011/12/28/2305398.html PhoneGap开发环境搭建   项目中要用PhoneGap开发,了解 ...

  5. (转)phoneGap-Android开发环境搭建

    (原)http://www.cnblogs.com/shawn-xie/archive/2012/08/15/2638480.html phoneGap-Android开发环境搭建   一.安装 在安 ...

  6. Hadoop项目开发环境搭建(Eclipse\MyEclipse + Maven)

    写在前面的话 可详细参考,一定得去看 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Mav ...

  7. 【JAVA零基础入门系列】Day1 开发环境搭建

    [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...

  8. JDK开发环境搭建及环境变量配置

    Java配置----JDK开发环境搭建及环境变量配置 1. 下载安装安装JDK开发环境 http://www.oracle.com/technetwork/java/javase/downloads/ ...

  9. Redis学习系列二之.Net开发环境搭建及基础数据结构String字符串

    一.简介 Redis有5种基本数据结构,分别是string.list(列表).hash(字典).set(集合).zset(有序集合),这是必须掌握的5种基本数据结构.注意Redis作为一个键值对缓存系 ...

随机推荐

  1. Android——关于PagerAdapter的使用方法的总结(转)

    PagerAdapter简介 PagerAdapter是android.support.v4包中的类,它的子类有FragmentPagerAdapter, FragmentStatePagerAdap ...

  2. webstorm 设置jsp支持ZenCoding

    setting -> File Type - html 里面增加*.jsp

  3. UI设计 - 手机列表风格总结

    1       概述 1.1     背景 对UI设计过程中常见的列表风格进行总结.希望对后续的设计工作有所帮助 1.2     预期读者 UI设计师,用户体验设计师,项目经理,美工 1.3     ...

  4. SQL Server 2012 自动增长列,值跳跃问题(自增增加1000)

    介绍 从 SQL Server 2012 版本开始, 当SQL Server 实例重启之后,表格的自动增长列的值会发生跳跃,而具体的跳跃值的大小是根据增长列的数据类型而定的.如果数据类型是 整型(in ...

  5. 【javascript】浮点数运算问题分析及解决方法

    问题: 在用 js 进行小数四则运算时发现了一个重大问题,比如:0.7 * 0.8 = 0.5599999999999999 分析: 在 js 中只有一种数字类型 Number,而且在 js 中所有的 ...

  6. Visual Studio 2008 添加MScomm控件的方法

    1.下载MSCOMM.zip,解压后包含4个文件:MSCOMM32.OCX, MSCOMM.SRG, MSCOMM32.DEP, MSCOMM32.OCA 2.将Mscomm.srg, Mscomm3 ...

  7. [hadoop读书笔记] 第五章 MapReduce工作机制

    P205 MapReduce的两种运行机制 第一种:经典的MR运行机制 - MR 1 可以通过一个简单的方法调用来运行MR作业:Job对象上的submit().也可以调用waitForCompleti ...

  8. Java 之 File

    11.3 I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程 ...

  9. Html中怎么用CSS让ul中多个li标签不换行横排显示

    布局 通常有三种方式 { 1. position 2. float: left --> 其次是这个 3. block: inline-block  --> 他们推荐我用这个 } 具体描述 ...

  10. Lucene系列一:搜索引擎核心理论

    一.为什么需要搜索引擎 问题1:数据库索引的原理是怎样的? 索引原理:对列值创建排序存储,数据结构={列值.行地址}.在有序数据列表中就可以利用二分查找快速找到要查找的行的地址,再根据地址直接取行数据 ...