专为cocos creator修改的pomelo游戏框架的客户端js代码,使用的是websocket协议,服务端初始化时,通讯类型选第一个(ws)
将上面的文件直接扔进工程,是无法直接使用pomelo
,需要做一些简单修改,修改后的文件放在
pomelo这里。将代码丢进工程,
再require("relative_path/pomelo-client")
即可。
pomelo.init(params, callback);
例子:
pomelo.init({
host: host,
port: port,
user: {},
handshakeCallback : function(){}
}, function() {
console.log('success');
});
//@param user 发送给服务器的json串
//@param handshakeCallback 握手回调
pomelo.request(route, msg, callback);
例子:
pomelo.request(route, {
rid: rid
}, function(data) {
console.log(dta);
});
pomelo.notify(route, params);
pomelo.on(route, callback);
例子:
pomelo.on('onChat', function(data) {
addMessage(data.from, data.target, data.msg);
$("#chatHistory").show();
});
pomelo.disconnect();
pomelo.emit('beforeRPC'); //调用rpc之前
pomelo.emit("afterRPC"); //调用rpc之后
适用于网络请求过程中添加遮罩
适用于处理服务器返回错误信息
pomelo.setFilterAfter = function(cb){
filterAfter = cb;
}
以下内容为查看源码所得,不保证正确性
pomelo.emit('reconnect');
pomelo.emit('io-error', event);
pomelo.emit('close',event);
pomelo.emit('disconnect', event);
pomelo.emit('heartbeat timeout');
pomelo.emit('error', 'client version not fullfill');
pomelo.emit('error', 'handshake fail');
pomelo.emit('onKick', data);
pomelo.on("reconnect", callback);
pomelo.on("close", function(event){
});
pomelo.on("io-error", function(event){
});
由于close
事件可以是正常关闭,也有可能是异常关闭,所以需要根据关闭时,事件的code
进行相应的处理
状态码查询地址: MDN
需要注意的是,socket的error事件对应pomelo的事件是io-error。
-
使用pomelo.on监听事件的时候,如果对同一事件重复监听,所有的监听事件都会被调用。所以,使用pomelo.on事件前,最好先清理一下。
pomelo.removeAllListeners([event])
-
protobuf.js
,protocol.js
在creator里,有些代码是冗余的,但为了保持与官方的一致,并未进行精简。