目前該版本已經更新至 v0.0.5a
github:https://github.com/D-Deo/pomelo-flash-tcp
Pomelo-Flash-TCP
it`s a simple component for supporting pomelo-hybridconnector(tcp)
version: 0.0.5a
features:
- support pomelo new protocol model (v0.4.x)
這是一個爲了可以用 flash 的 as3 來和服務端的 pomelo 通訊的 tcp 組件,在自己的項目中已經可以和後臺進行調試。
@已全面支持 pomelo 的 routeDict 和 服務端的 protobuf
相關的服務器可設置如下參數:
app.set('connectorConfig', {
connector : pomelo.connectors.hybridconnector,
useDict : true,
useProtobuf : true,
});
@目前 v0.0.5a 也已支持 Pomelo v0.4.x 中的新特性:自定義 Message 的編解碼
客戶端使用方法:
-
創建一個實現了 IMessage 接口的類 (MyMessage),並實現其接口方法:encode 和 decode,更多編解碼內容可參考 Pomelo wiki
-
在創建 Pomelo 的實例之後,可將自定義的 Message 實例賦值給 Pomelo 的 message 屬性
相關客戶端代碼可參考如下形勢:
var myMessage:IMessage = new MyMessage();
var pomelo:Pomelo = new Pomelo();
pomelo.message = myMessage;
相關的服務器可在 app.js 中添加如下方法:
var encode = function(reqId, route, msg) {
// do some customized encode with reqId, route and msg
return result; // return encode result
};
var decode = function(msg) {
// do some customized decode with msg
return result; // return decode result
};
1. 連接服務器
需要監聽 pomelo 的 handshake 事件,連接成功後會觸發此事件
var pomelo:Pomelo = new Pomelo()
pomelo.init("127.0.0.1", 3014);
pomelo.addEventListener("handshake", onSuccess);
@v0.0.2a 版本及以後,可以在 init 方法中直接傳遞一個 callback,無需監聽 handshake 事件,不過此事件仍保留
pomelo.init("127.0.0.1", 3014, null, function(response:Object):void {
if (response.code == 200) trace(response.user.msg);
});
2. request && response
返回的response是一個object的對象,它解析自服務器的JSON對象
pomelo.request("connecter.LoginHandler.login", {}, function(response:Object):void {
trace("response object : ", response);
});
3. notify
notify是不需要服務器返回response的,所以沒有callback
pomelo.notify("connector.roomHandler.enter", {});
4. 服務器推送
利用 as3 的事件機制便可以完成接受服務器的推送內容,PomeloEvent有一個message的object參數,解析自服務器推送的JSON
pomelo.addEventListener("onStart", function(e:PomeloEvent):void {
trace(e.message);
});