CocosCreator遊戲開發---菜鳥學習之路(三)如何在CocosCreator中使用Pomelo

PS(廢話):
這段時間都在研究網易的Pomelo框架,作爲新手小白,自然遇到了不少坑爹的事情。(當然也有可能是因爲自己技術不過關的原因所以導致在很多基礎的問題上糾結了很久。)網上也搜索了好久,但是基本都是複製黏貼的教程,按照教程做肯定沒有問題,但是對於新手來說個別細節上還是有很多無法理解或者說新手容易犯錯的地方。於是乎我就決定把自己遇到的問題寫一下,如果能夠幫助以後入坑的同行新手,也算是積了點陰德,避免大家少走彎路,或者說減少研究的時間。
好了廢話不多說了,還是抓緊開始正題吧。

序言

雖然Pomelo官方的文檔已經對於如何在客戶端中使用Pomelo有了比較詳細的描述,對於一些大拿來說肯定看了文檔就會了,但是奈何鄙人水平實在有限,所以對於CocosCreator這種沒有在官方文檔內的客戶端,自然就不會了。所以就果斷搜索了一下 “如何在CocosCreator中使用Pomelo” 。然後基本搜索到的就是利用聊天爲例子的那篇文章了----->點擊我進入文章
當然例子肯定是沒有問題的。但是我自己在使用的時候對於一些細節的問題又產生了疑惑。再加上手賤。。。。所以就有了更大的疑惑了。。。然後就糾結了好久。。

如何在客戶端中正確使用Pomelo

  1. 首先去下載ccc-pomelo-chat-client源碼,然後把源碼中的ccc-pomelo-chat-client/assets/pomelo拷貝到你的 CocosCreator 項目 assets 目錄下,這樣在你的項目中即可使用 pomelo-client 相關 API 了。
  2. 在onload方法中 初始化pomelo ,帶上host 參數,port參數
  3. 在onload方法中on好對於服務器的各類響應,就像這樣
  4. 在需要主動發送消息的地方寫好request方法或者notify方法(我就是作死死在這裏的。)
  5. 然後就大功告成了。

個人手賤遇到的坑

根據官方的API,其實很簡單一共也就4個方法,簡單的不能再簡單了。但往往就是這麼簡單的幾個方法把我繞進去了。。。不得不感嘆自己的智商越來越低了。
首先是pomelo.init(params,cb) 這個方法,老實說根據官方的文檔,我是有點糾結的。因爲他寫的是“這通常是客戶端的第一次調用”,再加上下載過來的代碼是這樣子的

雖然我知道init是初始化的作用,但是我在具體寫代碼的時候又特麼作死了一下,在場景的onload方法中又加了一個request方法,如下圖所示

結果就出錯了,之後我又嘗試了複製兩個init方法,妥妥的成功了,然後就導致我在一瞬間懷疑每一次request請求都要放在Init方法裏面。但是作爲一名還算寫過代碼的渣渣程序員來說,知道這個想法肯定是錯誤的。其正確的順序肯定是init完了之後你愛去哪裏request就去哪裏request的。於是乎就糾結了好久。
最後問了羣裏的人才發現原來是因爲我request方法也寫在onload方法裏面,所以就導致Init方法還沒有調用成功,他就在那邊request了,這樣自然會出錯了
(哎果然太久沒寫代碼了就容易鬧出這種低級錯誤=。=)

個人經驗小結

客戶端的方法中是包含以下幾個參數的 route msg cb 而服務端則是 msg session next
首先是對應關係

    客戶端的msg對應的就是服務端中msg
    cb對應的就是服務端的next
    而route着是服務端的路由,
    session則是不需要傳遞的,因爲在init的時候已經創建了,在之後的調用中會自動傳遞。

其次就是參數內的內容了

    route參數就是一串string格式的路由,可以簡單的理解爲  “服務器.類名.方法名”
    msg內的參數我目前是用key-value的數組(其他格式我目前還沒嘗試以後有機會會進行嘗試)
    cb和next內的參數進行對應。對於初學javascipt的人可能會有些難理解。但是問題不大。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章