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

2023-12-14 23:32

本文主要是介绍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开发中Web客户端开发API简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/494294

相关文章

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

python通过curl实现访问deepseek的API

《python通过curl实现访问deepseek的API》这篇文章主要为大家详细介绍了python如何通过curl实现访问deepseek的API,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... API申请和充值下面是deepeek的API网站https://platform.deepsee

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程

rust 中的 EBNF简介举例

《rust中的EBNF简介举例》:本文主要介绍rust中的EBNF简介举例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 什么是 EBNF?2. 核心概念3. EBNF 语法符号详解4. 如何阅读 EBNF 规则5. 示例示例 1:简单的电子邮件地址

Java对接Dify API接口的完整流程

《Java对接DifyAPI接口的完整流程》Dify是一款AI应用开发平台,提供多种自然语言处理能力,通过调用Dify开放API,开发者可以快速集成智能对话、文本生成等功能到自己的Java应用中,本... 目录Java对接Dify API接口完整指南一、Dify API简介二、准备工作三、基础对接实现1.

一文教你如何解决Python开发总是import出错的问题

《一文教你如何解决Python开发总是import出错的问题》经常朋友碰到Python开发的过程中import包报错的问题,所以本文将和大家介绍一下可编辑安装(EditableInstall)模式,可... 目录摘要1. 可编辑安装(Editable Install)模式到底在解决什么问题?2. 原理3.

一文详解如何在Vue3中封装API请求

《一文详解如何在Vue3中封装API请求》在现代前端开发中,API请求是不可避免的一部分,尤其是与后端交互时,下面我们来看看如何在Vue3项目中封装API请求,让你在实现功能时更加高效吧... 目录为什么要封装API请求1. vue 3项目结构2. 安装axIOS3. 创建API封装模块4. 封装API请求

Python 异步编程 asyncio简介及基本用法

《Python异步编程asyncio简介及基本用法》asyncio是Python的一个库,用于编写并发代码,使用协程、任务和Futures来处理I/O密集型和高延迟操作,本文给大家介绍Python... 目录1、asyncio是什么IO密集型任务特征2、怎么用1、基本用法2、关键字 async1、async

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件

使用Python开发Markdown兼容公式格式转换工具

《使用Python开发Markdown兼容公式格式转换工具》在技术写作中我们经常遇到公式格式问题,例如MathML无法显示,LaTeX格式错乱等,所以本文我们将使用Python开发Markdown兼容... 目录一、工具背景二、环境配置(Windows 10/11)1. 创建conda环境2. 获取XSLT