基於 Pomelo TCP 網絡通訊的 Flash as3 組件(v0.0.5a)

目前該版本已經更新至 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:

  1. 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 的編解碼

客戶端使用方法:

  1. 創建一個實現了 IMessage 接口的類 (MyMessage),並實現其接口方法:encode 和 decode,更多編解碼內容可參考 Pomelo wiki

  2. 在創建 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);
});

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章