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,重新启动服务器端和客户端就能通信了。