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. mysql ACID与四种隔离级别归纳总结

    关于数据库的ACID特性已经有很多的介绍,这里再重新归纳总结一下:   A(atomicity)原子性: 即事务要么全部做完,要么全部不做,不会出现只做一部分的情形,如A给B转帐,不会出现A的钱少了, ...

  2. PHP调用JAVA的WebService简单实例

    使用PHP调用JAVA语言开发的WebService.客户端提交两个String类型的参数,服务端返回一个对象类型.服务端使用AXIS-1.4作为SOAP引擎.客户端为PHP5.2.9,使用NuSOA ...

  3. [impala] impala 简介

    [简介] Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据.已有的Hive系统虽然也提供了SQL语义,但由于H ...

  4. vmrun命令

    VMWare提供了vmrun与VIX API两种手段使用户可以通过程序对虚拟机进行控制. 在官方文档中给出了详细的说明和示例代码.           vmrun:http://www.vmware. ...

  5. Axiom3D:手动创建ManualObject与Mesh,以及如何使用Cg着色器语言

    在开始正文前,先说下Axiom3D里遇到的二个BUG. 1.在启动axiom生成的程序中,我发现输出里总是有一些如"billboard_type","billboard_ ...

  6. Linux高级字符设备驱动 poll方法(select多路监控原理与实现)

    1.什么是Poll方法,功能是什么? 2.Select系统调用(功能)      Select系统调用用于多路监控,当没有一个文件满足要求时,select将阻塞调用进程.      int selec ...

  7. IDEA中 @override报错的解决方法

    今天用IDEA导入一个java工程时,碰上一个问题,代码中所有@override处标红,并提示:@override不支持对接口的实现. 网上百度了一下发现, 原因是引用JDK5版本中存在小bug的问题 ...

  8. JS 同一标签随机不停切换数据点菜--解决选择困难症

    可视化的 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF- ...

  9. 怎么用一个ppt介绍一个项目

  10. 【Mysql】Mysql修改Root密码

    1.用命令编辑/etc/my.cnf配置文件,即:vim /etc/my.cnf 或者 vi /etc/my.cnf 或者 nano /etc/my.cnf 2.在[mysqld]下添加skip-gr ...