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 ,如需转载请自行联系原作者



相关文章
|
1天前
|
存储 移动开发 前端开发
H5技术:探索现代Web开发的未来
HTML5(H5)是一种用于构建现代Web应用程序的标准,它为开发者提供了更多的功能和能力。这篇博客将介绍H5技术的一些重要特性以及它们对Web开发的影响。
14 0
|
2天前
|
数据库 Python
Python用于Web开发
Python是一种功能强大的编程语言,它有许多用于Web开发的库和框架。在本文中,我们将介绍如何使用Python开发Web应用程序。
22 3
|
5天前
|
资源调度 前端开发 JavaScript
深入理解Webpack:现代Web开发的打包工具
Webpack是一款强大的开源JavaScript模块打包工具,它在现代Web开发中扮演着至关重要的角色。通过Webpack,开发者可以有效地管理和打包项目中的各种资源,包括JavaScript、CSS、图片等,使Web应用程序更具可维护性和性能。在本博客中,我们将深入研究Webpack的核心概念、配置、加载器、插件和最佳实践,以帮助您更好地掌握这个强大的工具。
12 0
|
6天前
|
SQL 开发框架 API
python开发web
Python是一种高级编程语言,具有简洁易读的语法和强大的功能。在Web开发中,Python可以用于构建各种类型的应用程序,如网站、Web应用程序、API等。Python常用的Web开发框架有Django、Flask、Tornado等。
|
12天前
|
存储 Rust 前端开发
给 Web 前端工程师看的用 Rust 开发 wasm 组件实战
wasm 全称 WebAssembly,是通过虚拟机的方式,可以在服务端、客户端如浏览器等环境执行的二进制程序。它有速度快、效率高、可移植的特点
28 0
|
26天前
|
设计模式 前端开发 Java
使用Java MVC开发高效、可扩展的Web应用
本文将介绍如何使用Java MVC(Model-View-Controller)模式来开发高效、可扩展的Web应用。我们将深入探讨MVC模式的核心概念,以及如何在Java中实现这一体系结构。通过合理地分离业务逻辑、用户界面和数据处理,我们可以构建出易于维护和扩展的Web应用程序。
|
29天前
|
JavaScript 前端开发 Java
44【Java生态前后端】开发web应用使用到的技术 & Vue框架+Java开发Web应用的步骤
使用Vue框架进行前端开发,实现应用的交互和界面展示。
34 1
|
29天前
|
前端开发 关系型数据库 API
【Python入门系列】第十四篇:Python Web开发
PythonWeb开发是使用Python语言进行Web应用程序开发的过程。Python是一种简洁、易读且功能强大的编程语言,因此在Web开发领域广受欢迎。
42 1
|
1月前
|
开发者 Python
【从零学习python 】88. WSGI接口详解:实现简单高效的Web开发
【从零学习python 】88. WSGI接口详解:实现简单高效的Web开发
24 0
|
1月前
|
存储 前端开发 关系型数据库
[后端浅了解]web开发合作
[后端浅了解]web开发合作
17 0
相关产品
云迁移中心
推荐文章
更多