这年头做实时站应该一开始就 node.js + socket.io。

2012-08-23 13:09:39 +08:00
 cheshirecat
当初早知道这么简单的话就不用 PHP 了,哈哈。

研究了一下,PHP 和 node.js 之间传 session 之类比较麻烦,于是用 Ratchet 给 PHP 加 WebSocket,试了试还不错。
9411 次点击
所在节点    程序员
22 条回复
ikbear
2012-08-23 13:19:51 +08:00
最近几行php代码就把我恶心到了。你要用node.js干嘛还用php呢?
cheshirecat
2012-08-23 13:27:44 +08:00
@ikbear 没办法,当时不知道 node.js 好用。现在已经写了这么多 php ,也懒得迁移了。
cheshirecat
2012-08-23 13:30:13 +08:00
上面迁移的意思是用 node.js 重新写原来的 php 代码。
dotcoo
2012-08-23 14:09:13 +08:00
nodejs业务逻辑复杂了会死人的.
fsw90628
2012-08-23 14:18:40 +08:00
@dotcoo 所以 Tornado 看上去是不错的选择。
hyq
2012-08-23 14:43:47 +08:00
html页面不是很好弄,nodejs程序修改后得重启nodejs,nodejs里面如果有个未处理的错误,那么整个webserver就躺下了.这是我个人用socket.io做了一个聊天服务器的感受
hyq
2012-08-23 14:48:58 +08:00
@cheshirecat 实时站的话,的确nodejs是首选
willmouse
2012-08-23 14:50:18 +08:00
@hyq google node-dev

还有你说有个未出理错误server就down了是你异常处理和server的设置有问题
funcman
2012-08-23 14:51:35 +08:00
@hyq node.js绝对可以做到热更新,但是需要写一些代码。
hyq
2012-08-23 15:12:07 +08:00
@willmouse 异常处理的问题,比如说mysql连接超时了,如果没有处理这个错误的话,整个服务器进程就退出了
hyq
2012-08-23 15:13:15 +08:00
@funcman 如何热更新?
spritevan
2012-08-23 17:35:02 +08:00
hyq
2012-08-23 23:13:52 +08:00
@spritevan 不错,很好很強大
kernel1983
2012-08-23 23:19:18 +08:00
node稳定还需要年头, ruby这么多年下来, 没个rvm还不是到处报错

做实时还是直接tornado靠谱
cheshirecat
2012-08-24 10:29:53 +08:00
Rabbit52
2012-08-24 10:32:59 +08:00
@cheshirecat 楼主头像看上去在闪烁耶
kernel1983
2012-08-24 10:46:03 +08:00
要有智慧的看图表啊, python没有v8快是肯定的, 这个是语言设计的哲学, 另外tornado和nodejs都是玩异步的, erlang是micro thread, 正大光明的比tornado至少要多进程才对
bhuztez
2012-08-24 11:06:11 +08:00
@kernel1983

> python没有v8快是肯定的, 这个是语言设计的哲学

其实只是没JIT而已。用pypy跑这种Hello,world级的测试,tornado可以再快1.5-2倍的样子,这样tornado和node.js大致上是在一个数量级上的。

http://casbon.me/what-will-pypy-do-for-your-website-benchmarki


> 正大光明的比tornado至少要多进程才对

那里面写了

> Erlang was launched with Kernel Polling enabled, and with SMP disabled so that a single CPU was used by all the libraries.

所以,其实tornado和node.js已经占便宜了。毕竟人家Erlang是有实现SMP逻辑的,现在只是运行期关掉,而不是编译的时候关掉,所以运行的时候还是有一点点没必要的开销的。

另外,有JIT,太占便宜了,因为JIT一般是在单独的线程里干活的,而Erlang关了SMP只能用一个CPU。要公平的话,Erlang的得用hipe先编译好再跑。

所以,benchmark已经严重倾向tornado和node.js了,它们还是惨败。
kernel1983
2012-08-24 12:43:19 +08:00
好吧, Erlang确实很快, 10k+让人很吃惊

我们也可以看到另外一个事实就是Tornado和Nodejs跑到Erlang使用者的电脑上就很自然的变慢了, 其他的地方可以看到tornado 4000+的测试现在就只有1500了

最后, 原来我们已经不在讨论长链接问题了, 那么就改日聊吧
liuyanghejerry
2012-08-24 13:35:20 +08:00
个人感觉socket.io除却出色的完成websocket本身之外,最大的特点就是使用非常简单明了。本来很倾向使用nodejs+socket.io的,但是后来由于项目性质特殊不得不抛弃了这一套组合拳。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/45851

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX