转载自: 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-Client通常配合Pomelo服务器使用,实现客户端与服务器的无缝对接。首先,开发者需要在客户端初始化Pomelo实例,设置服务器地址和端口,然后注册监听器来处理接收到的消息。接着,通过调用send...
pomelo 是由网易开发的基于node.js开发的高性能、分布式游戏服务器框架, 也可作为高实时web应用框架。 Pomelo的应用范围 pomelo最适合的应用领域是网页游戏、社交游戏、移动游戏的服务端,开发者会发现pomelo可以...
Pomelo还提供了客户端开发库,让客户端开发变得友好。 2. Jansson库: Jansson是一个C语言库,主要用于JSON数据的编码、解码和操作。它具有简单直观的API和数据模型,支持Unicode(UTF-8),并且拥有完备的文档和...
在开发自定义监控模块前,开发者需要确保已经阅读并理解了`adminConsole开发文档`以及`adminConsole-api-文档`,以便于编写出符合Pomelo框架要求的模块代码。此外,由于文档可能存在OCR扫描错误,开发者应当能够理解...
Pomelo还适用于实时Web应用程序。 它的分布式体系结构使pomelo的扩展性优于其他实时Web框架。 主页: : 邮件列表: : 文档: : Wiki: : 问题: : 标签:游戏,nodejs 特征 全面支持游戏服务器和实时应用...
JavaScript是Web开发的主流语言,同时也在Node.js环境中广泛用于后端开发。在Pomelo框架中,开发者可以使用JavaScript编写游戏逻辑和服务端脚本,与Cocos Creator中的前端JavaScript代码相配合,实现前后端的无缝...
Pomelo还适用于实时Web应用程序。 它的分布式体系结构使pomelo的扩展性优于其他实时Web框架。 主页: : 邮件列表: : 文档: : Wiki: : 问题: : 标签:游戏,nodejs 特征 全面支持游戏服务器和实时应用...
API项目通常是指使用ASP.NET Core MVC或Web API模式创建的服务,用于提供RESTful接口,供其他客户端(如Web应用、移动应用或前端应用)调用。 4. **Program.cs**:这是ASP.NET Core应用程序的主要入口点,其中包含`...
本篇文章将围绕".NET Core 3.1后端框架"这一主题,深入探讨其在构建Web API时的应用,特别是结合Dapper ORM、JWT认证授权以及Swagger文档生成工具,如何打造一个适用于中小型项目的高效后端系统。 首先,我们来看...
WebSocket API设计的目标是提供一种低延迟、高效率的方式,使得客户端(如浏览器)与服务器之间能进行全双工的数据传输。它克服了HTTP协议的限制,允许服务器主动向客户端推送数据,极大地提升了实时性要求高的应用...
在JavaScript环境中,WebSocket API使得开发者能够轻松地在Web应用中集成这种实时功能。 在"chatofpomelo-websocket"框架中,核心概念包括: 1. **服务器架构**:Chatofpomelo-websocket基于Pomelo框架,这是一个...