cocosCreator-js客户端+pomelo服务端搭建聊天系统

开发环境:

cocosCreator版本:1.5.2

pomelo版本:0.3


1.搭建聊天的服务端

        @下载pomelo官方推荐的聊天Demo.地址https://github.com/NetEase/chatofpomelo

@按照例子正常运行启chatofpomelo。(以下是Windows启动,搭建了nodeJs、pomelo环境,这些按照官网推荐搭建)

                   1. 点击运行npm-install.sh

                   2. cd game-server文件下,运行pomelo start.


                   3. cd  web-server文件下,运行node app.

 

                 4.浏览器上打开,http://localhost:3001.能正常运行起来如下:


2.搭建cocosCreator客户端

         上面demo运行起来,主要是为了正常启动服务端,这里才是客户端重点。上面是web端。

 cocosCreator需要使用到pomelo 的cocos-js 插件:https://github.com/fuhongxue/CocosCreator-Pomelo-plugin.

         把pomelo-creator-client.js直接导入到项目里,设置为插件。

       

       启动客户端(参照web-server)简单的启动代码:

       var route = 'gate.gateHandler.queryEntry';
        cc.log("开始链接")
        pomelo.init({
            host: "127.0.0.1",
            port: 3014,
            log: true
        }, function() {
            cc.log("连接成功")
            pomelo.request(route, {
             uid: "gsr"
            }, function(data) {
                 cc.log("开始聊天")
                 cc.log(data.code)
                  pomelo.disconnect()
                 if(data.code === 500) {
                     showError(LOGIN_ERROR);
                     return;
                 }
             //callback(data.host, data.port);
            });

         启动起来,你会发现连接失败,总是保存。

         所以我做了如下修改:

                打开game-server服务端文件夹的app.js,添加如下的代码,重新启动game-server.


app.set('connectorConfig', {
connector: pomelo.connectors.hybridconnector,
heartbeats: true,
closeTimeout: 60 * 1000,
heartbeatTimeout: 60 * 1000,
heartbeatInterval: 25 * 1000
});

注意:connector: pomelo.connectors.hybridconnector ;connector: pomelo.connectors.sioconnector

       pomelo目前提供了hybridconnector和sioconnector,

       其中hybridconnector支持socket(TCP)和websocket,sioconnector支持socket.io(websocket的封装)。

       sioconnector使用socket.io(websocket封装)本身有自身是有心跳的,不需要配置,服务端检测客户端退出可以通过心跳超时。
       hybridconnector支持socket(TCP)和websocket,须手动设置心跳、超时断开、字典压缩和protobuf。

我们客户端的是webSocket.要添加hybridconnector。


好了!上面修改完app.js,重新启动服务器端和客户端就能通信了。