瞎扯淡 为什么服务端推送不如 websocket 出名?

jiyinyiyong · 2012年08月09日 · 最后由 adamshen 回复于 2015年09月12日 · 11270 次阅读

Rails 4.0 will allow you to stream arbitrary data at arbitrary intervals with Live Streaming.

https://twitter.com/linjunhalida/status/233460822909788160 http://tenderlovemaking.com/2012/07/30/is-it-live.html

推上看到的分享,提到 Server-Sent Events 技术,第一次听说.. http://www.html5rocks.com/en/tutorials/eventsource/basics/ http://www.oschina.net/question/82993_63312 一看这么像 websocket, 而且浏览器支持也不错啊,这门技术很冷僻嘛?

websocket 是标准吧

这技术一点也不冷僻啊,pushlet/comet, 比 websocket 有名,也应用的广。比如 webqq 就是用 erlang 的 mochiweb 做的长连接; python 社区有个国产的 eurasia 框架,也是专注 comet,也做了很多年; 原来那个挺出名的随机聊天网站 omegle 也是基于长连接的,开始用的 twisted,后来改成了 gevent; ape-project 是个专注长连接的应用,用 js 处理逻辑的,早于 node.js, 应用案例也很多,好像国内 (似乎是湖南卫视?) 有个网页游戏也是基于这个的

不过长连接这块,php 天生是废的,python 框架 (通用的 wsgi gateway) 和 rails 的一次性 return 机制不适合做 comet,所以这次 4.0 加了 stream.write 算不错的特性了

现在 ff/chrome/opera 虽然都支持 websocket, 但是协议最终还没确定,浏览器之间使用协议不太统一,我觉得还是长连接靠谱一点,比如多协议支持的 sockjs,默认就直接禁用了 websocket

#2 楼 @clearJiang 原来都有这么多应用了。厉害. 那应该是英文到中文名词对应陌生了,, "轮询,long polling, SSE, 长连接"几个概念具体怎么对应啊?

SSE 肯定比 web socket 好,国外有很多相关讨论

#6 楼 @bao1018 毕竟是 2010 年的文章,WebSockets 不能比这好么?

@jiyinyiyong 我目前的项目都在用 SSE 做服务器推送,用下来很不错很稳定,性能也 ok,当然你也可以用 WebSocket 实现,没必要非要比出个优劣,自己 conformtable 就可以了

#8 楼 @bao1018 具体是什么样的应用场景?

@jiyinyiyong 我的 case 是长段落的,实时的语音识别,前端用 Web Recorder 录音,然后将 audio stream 传向后端,后端实时的语音识别的结果实时推送回前端,就是一边说话一边翻译的那种啦。

#10 楼 @bao1018 音频流,了解了。

学习了,stream.write 听来不错的样子。

13 楼 已删除
需要 登录 后方可回复, 如果你还没有账号请 注册新账号