-
Notifications
You must be signed in to change notification settings - Fork 2.9k
如何连接非HTML5客户端? #35
Comments
非HTML5也可以用websocket |
只要支持socket.io的客户端都可以连接pomelo, 目前socket.io几乎支持所有语言的客户端, 参考这个wiki的最后: https://github.com/LearnBoost/socket.io/wiki 如果需要封装得好一点的pomelo客户端, 目前只封装了 pomelo-jsclient,参考: 我们接下来会封装好 flash, ios和android的客户端。 |
pomelo.request('gate.gateHandler.queryEntry', {uid: name}, function(data) { 现在我们需要从iOS原生客户端访问pomelo的服务器,是否需要在websocket之上封装额外的专门针对pomelo的协议呢?例如这个request发出去的内容是怎样的呢? |
你说的很对,pomelo客户端库里面已经封装了连接服务器的内容。如果要从ios原生客户端访问pomelo的服务器,需要在websocket的基础之上封装针对pomelo的协议,具体可以参考pomelo-jsclient的代码;发出去的request包括消息路由地址,消息内容,消息时间等。 |
所以,能提供一份消息写意说明么?看代码还是有猜的成分,呵呵,如果很简单的协议还好:) Sent from my iPhone On 8 Dec, 2012, at 23:53, py notifications@github.com wrote:
|
临时学的js, 看了一下js-client的代码, 不知道理解的对不对
|
其实现在的消息协议非常简单,socket.io还是以字符串的形式进行传输消息,如果客户端的代码稍微简单,请参考 https://github.com/NetEase/pomelo-protocol ,主要内容和客户端pomelo-client中的消息协议差不多,不过有更多的注释和测试用例,可以帮助你理解。以后会在数据压缩和字节传输等方面继续完善现有的消息协议。 |
那是否可以理解为还不支持二进制数据传输呢?数据的加密有支持么?谢谢。 Sent from my iPhone On 9 Dec, 2012, at 15:42, halfblood notifications@github.com wrote:
|
协议中那个ID有什么用, 我看实现觉得这个ID就只是递增而已, 对TCP而言不需要保证顺序, RPC通过route来调用, 数据在msg; |
我认为数据加密在编解码接口处理就好了, 要传二进制也没问题 |
是的,目前还不支持二进制传输,socket.io的二进制传输本来就比较困难,好像没有提供默认的支持。不过我们会想办法在字节压缩并传输方面研究,提供解决方案的。 |
那样的话……那不是流量会很大?在移动网络条件下的话效率会有很大影响吧?其实倒不如增加原生socket支持,毕竟,socket部分和服务器逻辑并没有那么大的耦合度,只要额外定义一个二进制协议就可以了,比如protobuf。 Sent from my iPhone On 9 Dec, 2012, at 15:56, halfblood notifications@github.com wrote:
|
我看了一下WebSocket, 是支持二进制传输的啊 , socket.io不支持可以自行添加么? |
我估计是因为pomelo协议的缘故。 Sent from my iPhone On 9 Dec, 2012, at 16:07, songjiyuan notifications@github.com wrote:
|
是的,这会给通讯造成很大的压力。可以从两个方面降低数据传输的压力:1.减少不必要数据的传输。2.字节压缩传输。关于你提到的原生socket,我们会考虑的。 |
@unalone 这与pomelo协议没有关系,pomelo数据协议目前还是很简单的。你可以研究下socket.io,就明白了…… |
是js的限制么, 看了一下socket.io的协议, 对数据体没有特殊的要求, 还是序列化时不支持? |
@songjiyuan 对,是客户端的限制!你可以看看socket.io其中的一个issue,关于这个讨论的比较详细:socketio/socket.io#680 。 |
那如果用AS3来通信, 到时候这个限制应该就不存在了吧, 服务器上的socket.io应该可以支持是吗? |
关于字节压传输方面的工作我们正在研究,有了解决方案会很快告诉大家的…… |
我想到一个方案, HTTP协议支持二进制传输, 可以封装一层框架协议, 使用POST提交, 并在server响应时自动处理好协议并将数据抛入到消息路由通道中 |
可以考虑用Google Protocol Buffer试试 |
非常需要二进制传输 希望考虑下 在 2012年12月10日星期一,yourihua 写道:
|
所有中文问题的issue请到这里来提: https://github.com/NetEase/pomelo-cn/issues/ |
很感谢您的共享,但是我想要将这个服务器用在非HTML5的客户端,应该怎么运用呢?
谢谢!
The text was updated successfully, but these errors were encountered: