文档章节

Pomelo游戏服务器端开发系列(4)-Connector

nextzeus
 nextzeus
发布于 2017/05/09 13:59
字数 300
阅读 111
收藏 0

Connector

在客户端通信的时候, pomelo目前提供了hybirdconnector和sioconnector,其中hybirdconnector支持tcp,websocket,; sioconnector支持socket.io; 实际编程中,我们可能需要定制自己的connector,pomelo提供了接口

内建的connector分析

以sioconnector为例分析

sioconnectot构造函数里需要三个参数 host, port, opts host,port是要监听socket绑定的 会监听以下几个事件:start, disconnect, error, message

encode/decode

服务器端收到客户端的请求message或者需要给客户端发送回应或者推送消息时,pomelo会使用connector的decode函数对数据进行解码。

客户端请求信息:

{
    id: <requestId>, //客户端产生的请求ID 不同的session 请求ID是互不干涉的[notify类型request reqId null]
    route:  <handlerRoute>, //请求位置 chat.chatHandler.send 
    body:   <requestBody> //请求参数
}    

服务器端给客户端的响应活着服务器端的推送消息,会使用connector的encode进行编码,encode(reqId, route, msg) 如果是推送消息,reqId为null;

decode/encode可通过opts配置 优先使用opts指定的decode/encode

//connector 配置
app.set('connectorConfig', {
    connector: pomelo.connectors.hybirdconnector,
    encode : <encode func>, //optional
    decode : <decode func>, //optional
    heartbet:30
});

© 著作权归作者所有

共有 人打赏支持
nextzeus
粉丝 10
博文 12
码字总数 4740
作品 0
朝阳
程序员
用Pomelo 搭建一个简易的推送平台

前言 实际上,个人感觉,pomelo 目前提供的两个默认和 使用的协议并不适合用于做手机推送平台,在pomelo的一份公开ppt里面,有提到过, 网易的消息推送平台是基于pomelo开发的 (一个frontend 支持...

打杂程序猿
2013/06/18
0
9
网易开源游戏服务器框架 pomelo 发布 0.6 版

pomelo 0.6是一次很大的升级, 是自0.3版以来最重要的一次升级 在Pomelo 0.6版本中,对pomelo部分结构进行了调整,将原有的globalChannel组件和master高可用组件从框架中移出,以一种插件的形...

谢骋超
2013/08/26
6.2K
7
网易开源游戏服务器框架 pomelo 0.9 版发布

pomelo 0.9版于2月26日发布,以下是该版本的新特性。 pomelo websocket支持自动重连 在pomelo 0.9版本中,pomelo-jsclient-websocket 支持自动重连。重连发生在连接断开后的5s后,在重连失败...

谢骋超
2014/02/27
7.8K
5
pomelo 1.0 preview版发布, 网易开源游戏服务器框架

## pomelo udpconnector提供 根据网友的要求,在pomelo 1.0中提供了udpconnector。在该udpconnector中,采用了pomelo之前hybridconnector提供的传输协议,包括握手、心跳及数据包的格式。该c...

谢骋超
2014/05/16
4.2K
9
当前的几种开源游戏服务端介绍

当前的几种开源游戏服务端介绍 pomelo Pomelo 是基于 Node.js 的高性能、分布式游戏服务器框架。它包括基础的开发框架和相关的扩展组件(库和工具包),可以帮助你省去游戏开发枯燥中的重复劳...

bot911
2015/02/02
2.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

Shell编程(expect同步文件、指定host和同步文件、构建文件分发系统、批量执行命令)

expect脚本同步文件 需求:自动同步文件 实验准备: A机器:192.168.248.130 B机器:192.168.248.129 实现: 1.A机器编写4.expect脚本文件,内容如下所示: #!/usr/bin/expectset passwd "...

蛋黄_Yolks
14分钟前
0
0
ppwjs之bootstrap颜色:背景颜色

<!DOCTYPT html><html><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>ppwjs欢迎您</title><link rel="icon" href="/favicon.ico" ......

ppwjs
15分钟前
0
0
Ubuntu与 Fedora之对比

大家好。今天我将重点介绍两个流行的Linux发行版之间的一些特性和差异; Ubuntu 18.04和Fedora 28。它们都有自己的包管理; Ubuntu使用DEB,而Fedora使用RPM,但它们都具有相同的桌面环境(GNO...

linuxprobe16
18分钟前
0
0
线性代数入门

线性代数的概念对于理解机器学习背后的原理非常重要,尤其是在深度学习领域中。它可以帮助我们更好地理解算法内部到底是怎么运行的,借此,我们就能够更好的做出决策。所以,如果你真的希望了...

牛奋Debug
昨天
2
0
开发5分钟,调试2小时 - 该如何debug?

几年来我在答疑群、论坛、公众号、知乎回答的各种问题,没有一万也有八千。其中有三分之二以上都是在帮人看报错,帮人 debug(调试代码)。 可以说,会不会 debug,有没有 debug 的意识,懂不...

crossin
昨天
3
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部