[讨论] 实时聊天实现。
发布于 10 年前 作者 kingchung 4223 次浏览 最后一次编辑是 8 年前

网上很多看到使用websocket可以很好地实现实时功能。除了兼容性之外,websocket就像是无敌了一样。但实际应用,很多项目也只是使用comet或者其他长轮询的实现而没有,那是为什么呢?

8 回复

不知道, 不过用 WebSocket 也不完全就是好处, 一个坏处是没有回调, 完全消息的逻辑, 写起来不方便, 还有 Socket 连接一直连着会耗比 Ajax 多的服务端性能.

因为实际应用…没多少个能支持websocket…

你要看现在能支持websocket 的浏览器 IE 妥妥的全系列不能支持…而已现在的IE份额…你能抛弃这部分用户?

移动端…可能稍微好一些.ios 6 就原生支持了…不过,现在份额最大的android …android 4.4 才支持websocket…

你说实际应用怎么玩websocket…

我现在项目用的是socket.io实现的实时聊天功能,我封装了一层(封装了Room, 简单的事件绑定,Room内的广播),做业务逻辑还是蛮爽的。服务器是单独的只给这个应用使用的,平时有看到,资源占用也不多。暂时项目在线人数也不会很多,但老会出现奇怪问题。一段时间连接会自动断掉。看log也没有明显的报错。

目前做的改进都只限于应用级别的,非常郁闷…

撇除浏览器问题,实际应用十分不稳定。但看到文章都是赞美的不得了的,感觉十分无解。

@KingChung 这个算是未来…

就算是现在支持了…也不代表完美支持…

@KingChung 就好比现在浏览器支持webgl…但是要做高大上的事情…还是得花很长时间去优化…

@KingChung 我公司里后端的同学用了 Socket.IO 出现过 CPU 占满的情况, 出现在大量链接断线重连的时候, 感觉也挺危险的

回到顶部