`
hongtoushizi
  • 浏览: 362775 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Pomelo开发中Web客户端开发API简介

阅读更多

转载自:  http://zhuxianzhong.blog.51cto.com/157061/1615109

 

使用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相关代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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);
 
  });
 
 });
 
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 pomelo.on('onChat'function(data) {
 
  addMessage(data.from, data.target, data.msg);
 
  $("#chatHistory").show();
 
  if(data.from !== username)
 
   tip('message', data.from);
 
 });
 
 
 

 

 
 
分享到:
评论

相关推荐

    Pomelo 游戏框架 Unity 客户端 亲测可用

    该Demo对官方的Unity API进行了重构,主要功能如下: 1. 所有方法的回调均在主线程(原PomeloClient回调在Socket线程,用起来很麻烦) 2. 增加了DisconnectEvent和ErrorEvent两个事件通知,方便捕捉网络断开事件和...

    Pomelo新客户端SDKlibpomelo2.zip

    libpomelo2 是 Pomelo 新的客户端 SDK。gyp$ gyp --depth=. pomelo.gyp [options]选项-Dno_tls_support=[true | false], false by default-Duse_sys_openssl=[true | false], true by default-Dno_uv_support=...

    Pomelo的.NET客户端pomelo-unityclient-socket.zip

    pomelo-unityclient-socket 是 Pomelo 的 .NET 客户端,支持 Pomelo 0.3和新的交流协议,基于原生的 Socket。示例Unity3D demo dotnet demo API初始化using namespace Pomelo.DotNetClient string host=...

    pomelo-admin-web.zip

    可用的pomelo web

    pomelo微信小程序客户端.zip

    微信小程序的优势在于它方便快捷、轻量级、跨平台、丰富的推广方式、丰富的功能接口、数据分析与优化、结合微信支付、支持多场景应用、社交功能以及多端同步等。这些优点使得小程序能够满足用户的多种需求,提供更好...

    Pomelo 游戏框架 集成 Unity 客户端 Demo - 优化版

    原Pomelo框架的Unity Demo有bug,无法正常运行。并且API回调在通信线程,使用起来极不方便。 该Demo对官方的Unity API进行了重构,主要功能如下: 1. 所有方法的回调均在主线程(原PomeloClient回调在Socket线程,...

    Pomelo 集成 Unity 客户端 Demo

    Pomelo官方的Chat Demo有Bug,Unity客户端是无法连击上服务器的。这个是修正了Bug的版本,包含了服务器和客户端全部代码。 如果要部署到远程服务器,注意要把chatofpomelo-websocket\game-server\config\servers....

    Pomelo 游戏框架 集成 Unity 客户端 Demo

    Pomelo 游戏框架 集成 Unity 客户端 Demo

    pomelo框架下的聊天室开发

    基于pomelo框架下的聊天室开发 基于pomelo框架下的聊天室开发 基于pomelo框架下的聊天室开发

    Pomelo 游戏框架 集成 Unity 客户端 Demo -- 改进版

    原Pomelo框架的Unity Demo有bug,无法正常运行。并且API回调在通信线程,使用起来极不方便。 该Demo对官方的Unity API进行了重构,主要功能如下: 1. 所有方法的回调均在主线程(原PomeloClient回调在Socket线程,...

    网易游戏高性能、分布式服务器开发框架 Pomelo.zip

    pomelo 是由网易开发的基于node.js开发的高性能、分布式游戏服务器框架, 也可作为高实时web应用框架。 Pomelo的应用范围 pomelo最适合的应用领域是网页游戏、社交游戏、移动游戏的服务端,开发者会发现pomelo可以...

    pomelo使用手册

    便携查询pomelo的api便携查询pomelo的api便携查询pomelo的api

    基于pomelo框架开发的聊天demo

    基于pomelo框架开发的聊天demo,实现服务器向客户端推送消息,聊天排行等功能

    Pomelo​的Cocos2d-js客户端pomelo-cocos2d-js.zip

    pomelo-cocos2d-js 是 Pomelo 的 Cocos2d-js 客户端。var pomelo = window.pomelo; var route = 'gate.gateHandler.queryEntry'; var uid = "uid"; var rid = "rid"; var username = "username"; ...

    pomelo服务器管理工具

    pomelo服务器管理工具

    Pomelo-Client:Pomelo 的客户端通信库

    柚子客户端Pomelo 的客户端通信库

    pomelo-admin-web:监控pomelo管理系统的服务器演示

    pomelo-admin-web pomelo-admin-web是的Web控制台。 它基于 。 这只是一个Web控制台示例,您可以像Web控制台一样实现自己的样式。 ##安装 npm install pomelo-admin-web ##用法刚刚运行 node app.js 在您的...

    EFcore连接本地Mysql数据库使用ASP.NET.CORE.API

    2.最新版本的ASP.NET.CORE.Web API 3.实现dbfrist和code 。 4.博客链接:https://blog.csdn.net/EAyayaya/article/details/124048491 5. 不是MVC方式 6.Entity Framework Core Entity Framework Core.Tools Entity ...

    pomelo-androidclient:适用于柚子的Java&Android客户端

    这是用于Java和Android的pomelo socket.io客户端。 该项目基于socket.io-java-client( )。 pomelo-androidclient是用于Android的易于使用的pomelo客户端,它还与JRE兼容。 ##如何使用 使用pomelo-android...

    pomeloAPI.zip

    pomelo是基于node.js的高性能,分布式游戏服务器框架。它包括基础的开发框架和相关的扩展... pomelo不但适用于游戏服务器开发, 也可用于开发高实时web应用,它的分布式架构可以使pomelo比普通的实时web框架扩展性更好

Global site tag (gtag.js) - Google Analytics