2
zhujinliang 2014-01-16 23:31:10 +08:00 via iPad 1
我做过类似的,我的建议是使用websocket等现成的协议做底层协议,解决包处理上的处理(粘包问题),同时方便跨平台,各平台或框架下应该都有其websocket库。
除非特别的情况,没必要使用udp协议,徒增麻烦,反而到最后,你处理完各种可能的错误,最后发现差不多是在udp上又封了个tcp。 |
3
vibbow 2014-01-16 23:37:51 +08:00
为什么 要 重复 造轮子...
|
4
teavoid OP @rekey iOS 和 android上面都可以使用socket.io么?原生代码,不是js。
@zhujinliang 恩,我研究下这个思路。websocket库,在各平台下有比较著名的库么。。。 @vibbow 求介绍轮子~能拿来就用最好了。。。 |
6
zhxiaog 2014-01-17 00:18:48 +08:00 1
Pomelo应该就算吧,各种客户端都有。
|
7
zhujinliang 2014-01-17 00:21:43 +08:00
为什么 不要 重复 造轮子
注意一下有时候看起来很好的轮子不一定是适合自己的轮子 我在做那个项目时,没有使用socket.io,用了websocket和自己封的一个http longpoll,因为我觉得socket.io太大了。使用我们浏览器界面的用户是普通访客(相对于客服),只给他用http longpull,js原生代码几十行就可以实现,我不想适配更nb的浏览器,更何况将来还要考虑兼容手机(让还停留在EDGE的人作何感想)。websocket是给PC客户端用的,原因上个回复里说了,这里我没重新造轮子(意思是没有自己撸出一个啥基于tcp或udp的协议)。 同时由于没有用socket.io,我们在做windows客户端时也省的去探socket.io适配C#的坑了(大体搜了一下,貌似是有这种库)。 话多了一些,就是想说明,不要一上来就看中哪个轮子,爱的不得了,弄不好最后它会坑你一下。 话说我们为什么打算自己做这个项目,同类的也有很多,并且我们已经花钱购买服务在用了,想自己做,是因为有不少证据指示,那家服务出卖了我们的客户资料。。。 |
8
teddy1004 2014-01-17 07:53:45 +08:00 via iPhone
有一个新库叫 sockjs,比较轻量,也比socket.io 稳定
|
9
ijse 2014-01-17 09:23:04 +08:00
|
10
ql9075 2014-01-17 09:39:22 +08:00
...node 这边这个字体颜色看起来好费力啊
|
11
teavoid OP 初步研究了下pomelo,已经自带了一个分聊天室的demo,并且可自选使用websocket或socket.io,已经决定用pomelo了。感谢网易。
|
13
notedit 2014-01-17 15:35:33 +08:00
最近一直在用SSE 来做实时的应用 到现在都很美好
|
15
notedit 2014-01-17 15:48:20 +08:00 1
@teavoid server side event 客户端叫 eventsource
https://github.com/notedit/sseredis 我用的这个实现 api简单 基于http协议 很容易做负载均衡 |
16
rangercyh 2015-01-27 17:41:48 +08:00
@zhujinliang 能否请教一下nodejs的原生socket的tcp连接,我想问一下心跳该怎么设计和编写
|