作者alpe (薛丁格的猫)
看板PHP
标题Re: [请益] PHP大量长时间连线的可行性?
时间Wed Oct 24 00:18:20 2012
※ 引述《smfy (光波记忆)》之铭言:
: 标题: [请益] PHP大量长时间连线的可行性?
: 时间: Mon Oct 22 15:58:01 2012
: 我目前有个应用
: 是透过PHP长时间连线後
: 可以立即取得其他Service的传送资料
: if (!socket_connect($sock, $host, $port)) return; //连线到其他Service
: while (true) {
: $buffer = socket_read($sock, 128);
: echo ....//一读取到资料就印到网页上
: }
: 想请问各位一下
: 当这类的连线数目很多时是否会出问题
: 又如果不可行的话又有什麽好的方式
: 麻烦各位了 谢谢
前年我写过 comet的聊天室(为了线上客服), 但为了不想要绕路所以
直接在php的socket处理html的部份,
也用过 php socket server 作过 middleware.
连线数目大, 不是问题, 大到一台吃不下去, 要加机器, 其实也还好.
但是不是会有机器间的沟通?? socket广播??
这就会是问题了!
刚好之前在olg的游戏公司作事, 有跟他们学了一些。
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 222.157.252.2
: → hSATAC:连线数占满/http timeout 没什麽问题 就加机器或改架构 10/22 16:15
: 推 Jerr:用CLI, 然後注意一下code有没有memory leak.. 10/22 16:28
︿︿︿︿︿︿︿︿︿︿︿︿︿︿︿︿︿
: → smfy:是说php这种架构可行吗? 比方说一台server容纳数千人左右的长 10/22 17:40
: → smfy:时间连线 比较怕的就是php开那麽多连线本身就撑不住 10/22 17:41
写php 的人比较没有memory控制的问题, connect close 记忆体就放回来
但写socket server 就没这回事了, 在while 里面有一个 db connect
你就等着爆. 没有 result_free 你也等着爆.
变数, array 控制不好 也等着爆
没有检查 db connect alive 也等死.
所以如果要写 socket server 思维要改一下.
: 推 LaPass:orz..... 像这种需求为什麽非得用PHP不可啊..... 10/23 23:22
我只能说无聊人&懒人很多, 不然 php & node.js 为啥会出来?
我还用过 php 写 win ap (php-gtk)勒
有时候是知道可以这样作, 虽然工具不是100分, 但为了快就上了
--
Exactly. For that one fraction of a second, you were open to options
you had never considered. THAT is the exploration that awaits you:
not mapping stars and studying nebulae,but
charting the unknown possibilities of existence.
Star Trek S7E26 "All Good Thing"
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.31.105.62
1F:推 PTTLSboy:为什麽php&node.js不是好主意?? 10/24 00:55
2F:推 LaPass:我是靠Java2EE在吃饭的.... PHP是下班才在搞的.... = = 10/24 01:10
3F:→ LaPass:打错... JavaEE 10/24 01:10
4F:推 LaPass:所以... 我不太能了解,为什麽提出别种语言的解决方案,会 10/24 01:12
5F:→ LaPass:被当成无聊人、懒人? 10/24 01:13
6F:推 matrixki:楼上完全误解原PO的意思了吧 10/24 01:34
7F:→ gpmm:nojs 的起因完全是 js 红了之後 + v8 威能的衍生物吧 XD 10/24 02:44
8F:推 LaPass:啊... 我看懂了,抱歉 10/24 09:23
9F:→ alpe:node.js 印象中,好像是不想多学一种server lang, 所以就上了 10/24 09:41
10F:推 linhomeyeu:node.js为何工具不好? 10/27 11:56