作者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
推 PTTLSboy:為什麼php&node.js不是好主意?? 10/24 00:55
推 LaPass:我是靠Java2EE在吃飯的.... PHP是下班才在搞的.... = = 10/24 01:10
→ LaPass:打錯... JavaEE 10/24 01:10
推 LaPass:所以... 我不太能了解,為什麼提出別種語言的解決方案,會 10/24 01:12
→ LaPass:被當成無聊人、懶人? 10/24 01:13
推 matrixki:樓上完全誤解原PO的意思了吧 10/24 01:34
→ gpmm:nojs 的起因完全是 js 紅了之後 + v8 威能的衍生物吧 XD 10/24 02:44
推 LaPass:啊... 我看懂了,抱歉 10/24 09:23
→ alpe:node.js 印象中,好像是不想多學一種server lang, 所以就上了 10/24 09:41
推 linhomeyeu:node.js為何工具不好? 10/27 11:56