91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Pomelo開發中Web客戶端開發API簡介

發布時間:2020-06-19 14:56:07 來源:網絡 閱讀:2868 作者:googlingman 欄目:開發技術

使用pomelo做服務端開發時,無論什么客戶端,只要能遵循與服務端的線上協議,就能夠與服務端建立通信。pomelo內建提供的sioconnector和hybridconnector都定義了自己的協議格式,其中sioconnector用于socket.io的通信,hybridconnector則用來處理websocket和tcp的連接通信。為了方便客戶端的開發,pomelo提供了部分平臺的客戶端SDK,主要包括用于Web端的JavaScript的SDK以及基于C/C++語言開發的libpomelo的使用。

 

【補充】hybrid意思是雜交,在此hybridconnector是指高級connector。我們知道,connector在pomelo架構中負責承擔與客戶端的網絡通信任務。為了理解hybrid一詞,看一個小故事:帶有HYBRID標識的車型,都是指混合動力汽車,即有內燃機和電力混合驅動的車輛;顯然這類車是指同類車中的高級型。新型瀏覽器都會支持HTML5格式網頁設計,自然hybridconnector對應用來處理websocket(新一代)和tcp類型的連接通信。

 

Web端JavaScript開發庫


    對于瀏覽器來說,HTML5中已經支持了websocket,因此使用支持websocket的瀏覽器可以直接與服務端的hybridconnector建立通信。而對于比較舊的瀏覽器來說,還沒有支持websocket的,可以使用基于socket.io的方式進行與服務端建立連接。因此,對于Web端,pomelo提供了兩套開發庫,分別適用于支持websocket的瀏覽器和不支持websocket的瀏覽器,這兩套開發庫的鏈接如下,適用于socket.io的pomelo-jsclient-socket.io以及適用于websocket的pomelo-jsclient-websocket。

 

web端API簡介

 

無論是socket.io的還是websocket的,都提供了統一的API,下面對這些API進行簡單的介紹。

  • pomelo.init(params, cb)
    這是往往是客戶端的第一次調用,params中應該指出要連接的服務器的ip和端口號,cb會在連接成功后進行回調;

  • pomelo.request(route, msg, cb)
    請求服務,route為服務端的路由,格式為"..", msg為請求的內容,cb會響應回來后的回調;

  • pomelo.notify(route, msg)
    發送notify,不需要服務器回響應的,因此沒有對響應的回調,其他參數含義同request;

  • pomelo.on(route, cb)
    這個是從EventEmmiter繼承過來的方法,用來對服務端的推送作出響應的。route會用戶自定義的,格式一般為"onXXX";

  • pomelo.disconnect()
    這個是pomelo主動斷開連接的方法。

 

chatofpomelo-websocket實例客戶端相關代碼

 

網易的chatofpomelo-websocket示例盡管展示了一個簡單的基于客戶端瀏覽器的聊天網絡程序,但是對于理解POMELO架構具有重要意義。下面,我們簡單列舉出客戶端關鍵腳本client.js中相應于上面的API相關代碼。

function queryEntry(uid, callback) {

 var route = 'gate.gateHandler.queryEntry';

 pomelo.init({

  host: window.location.hostname,

  port: 3014,

  log: true

 }, function() {

  pomelo.request(route, {

   uid: uid

  }, function(data) {

   pomelo.disconnect();

   if(data.code === 500) {

    showError(LOGIN_ERROR);

    return;

   }

   callback(data.host, data.port);

  });

 });

};
 pomelo.on('onChat', function(data) {

  addMessage(data.from, data.target, data.msg);

  $("#chatHistory").show();

  if(data.from !== username)

   tip('message', data.from);

 });

 
在此恕不作細致介紹上面代碼了。但是,提供一下,要理解上面代碼你必須有一點基于jQuery的前端網頁開發經驗。

小結

 

從網易的chatofpomelo-websocket示例來看,網易pomelo提供的基于WEB的前面API封裝性強,易于使用。只可憐我目前還沒有打開選擇使用基于Web網頁形式的網游開發。但是,我們對基于C/C++語言開發的libpomelo的使用更感興趣,在后面的文章中我會選擇時機介紹這方面的案例文章。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

连平县| 固阳县| 东兴市| 宿州市| 茌平县| 崇礼县| 东丽区| 红原县| 灵丘县| 定边县| 绥滨县| 宜宾县| 桃园市| 桓台县| 青河县| 民县| 大田县| 民乐县| 库伦旗| 兴安盟| 霍邱县| 南平市| 句容市| 昌黎县| 靖宇县| 凤阳县| 临澧县| 长乐市| 阜新| 郴州市| 淳安县| 黄大仙区| 江达县| 义乌市| 林芝县| 扎鲁特旗| 东至县| 陈巴尔虎旗| 阜宁县| 宣汉县| 新营市|