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

简介:

使用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);
 
  });
 
  
在此恕不作细致介绍上面代码了。但是,提供一下,要理解上面代码你必须有一点基于jQuery的前端网页开发经验。

小结

 

从网易的chatofpomelo-websocket示例来看,网易pomelo提供的基于WEB的前面API封装性强,易于使用。只可怜我目前还没有打开选择使用基于Web网页形式的网游开发。但是,我们对基于C/C++语言开发的libpomelo的使用更感兴趣,在后面的文章中我会选择时机介绍这方面的案例文章。














本文转自朱先忠老师51CTO博客,原文链接:http://blog.51cto.com/zhuxianzhong/1615109 ,如需转载请自行联系原作者



相关文章
|
15天前
|
监控 JavaScript 前端开发
《理解 WebSocket:Java Web 开发的实时通信技术》
【4月更文挑战第4天】WebSocket是Java Web实时通信的关键技术,提供双向持久连接,实现低延迟、高效率的实时交互。适用于聊天应用、在线游戏、数据监控和即时通知。开发涉及服务器端实现、客户端连接及数据协议定义,注意安全、错误处理、性能和兼容性。随着实时应用需求增加,WebSocket在Java Web开发中的地位将更加重要。
|
22天前
|
前端开发 JavaScript API
基于React的简易REST API客户端设计与实现
基于React的简易REST API客户端设计与实现
19 3
|
26天前
|
Web App开发 前端开发 开发工具
介绍Web开发的基础知识
介绍Web开发的基础知识
26 7
|
4天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
4天前
|
前端开发 数据挖掘 API
使用Python中的Flask框架进行Web应用开发
【4月更文挑战第15天】在Python的Web开发领域,Flask是一个备受欢迎的轻量级Web框架。它简洁、灵活且易于扩展,使得开发者能够快速地构建出高质量的Web应用。本文将深入探讨Flask框架的核心特性、使用方法以及在实际开发中的应用。
|
7天前
|
小程序 前端开发 API
小程序全栈开发中的RESTful API设计
【4月更文挑战第12天】本文探讨了小程序全栈开发中的RESTful API设计,旨在帮助开发者理解和掌握相关技术。RESTful API基于REST架构风格,利用HTTP协议进行数据交互,遵循URI、客户端-服务器架构、无状态通信、标准HTTP方法和资源表述等原则。在小程序开发中,通过资源建模、设计API接口、定义资源表述及实现接口,实现前后端高效分离,提升开发效率和代码质量。小程序前端利用微信API与后端交互,确保数据流通。掌握这些实践将优化小程序全栈开发。
|
16天前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
16天前
|
前端开发 Java API
构建RESTful API:Java中的RESTful服务开发
【4月更文挑战第3天】本文介绍了在Java环境中构建RESTful API的重要性及方法。遵循REST原则,利用HTTP方法处理资源,实现CRUD操作。在Java中,常用框架如Spring MVC简化了RESTful服务开发,包括定义资源、设计表示层、实现CRUD、考虑安全性、文档和测试。通过Spring MVC示例展示了创建RESTful服务的步骤,强调了其在现代Web服务开发中的关键角色,有助于提升互操作性和用户体验。
构建RESTful API:Java中的RESTful服务开发
|
21天前
|
机器学习/深度学习 前端开发 API
实现以图搜货功能,淘宝API开发实战分享
实现以图搜货功能,淘宝API开发实战分享
24 0
|
26天前
|
API
2024常用Web支付开发讲解教程
本教程为web支付开发,讲解了最常用的两钟支付:支付宝支付和微信支付,服务器配置和API对接,学完本课程可以学会微信支付、和支付宝支付开发。
18 2
2024常用Web支付开发讲解教程