看板 PHP 關於我們 聯絡資訊
※ 引述《PsMonkey (痞子軍團團長)》之銘言: : ※ 引述《PsMonkey (痞子軍團團長)》之銘言: : : → johnny1972:無論是哪一個,你都應該要修改一下 WebSockerServer 05/18 01:20 : : → johnny1972:然後ExampleServer.class.php 不要直接用繼承的 05/18 01:21 : : → johnny1972:把 server create socket, socket_select 的部份抽出來 05/18 01:21 : : → johnny1972:create 2個listen用的port,socket_select這兩個port 05/18 01:23 : : → johnny1972:處理好 new connection跟dispatch的部份,應該可以做到 05/18 01:24 : : → johnny1972:兩隻php.exe就在 run 裡頭加上可以 call_back 做事 05/18 01:31 : : → johnny1972:用 gpmm大提到的用檔案溝通,其實也就可以了 05/18 01:32 : 感謝 johnny1972 大人點撥 : 只能說被發現我抄人家的 code 又不求甚解,才會炸這種問題 [死] : 雖然說現在還是不求甚解,不過總算是硬幹出一個符合需求的東西 : https://github.com/PsMonkey/HatePhp/tree/master/socket : 關鍵點在於 socket_select() 會幫你找出哪個 socket 有變化 : 原先思考的盲點在於... server A 跟 server B 各自獨立 : 那其實只要再用一個陣列把 server A 跟 server B 的 : 所有 socket 都收集起來,一起作 socket_select() : 挑出來的 socket 再判斷是 server A/B 的 : (po 這篇的時候才想到,socket_select() 如果不會有 pause 效果 : 那好像也不用這麼麻煩? 阿阿阿阿... 算了不管了... [遮臉]) : 然後很彆扭地花了一點功夫蓋 OO 違章建築... : 當然目前這種寫法,各個 socket server : 彼此都得 reference / couple 在一起 : 不過我實在沒力氣再去 decouple 了 : 程式敢拿去用的就用吧 : 要詰譙程式寫法也絕對歡迎... : 我跟 PHP 的感情真的不太好 [死] : : 推 alpe:改完了, 可以作 05/18 22:55 : alpe 大提供的解法我就沒有看了 : 只能說我對 PHP 沒那麼有愛,有弄出解法就好... [死] 結果你已經解完了啊 Q_Q https://github.com/wakefield/HatePhp 今天花了一天的時間斷續在弄這個… 因為平常都很乖乖遵循 DRY 原則(絕對不是懶惰), 所以回頭手刻實在有些吃力啊… socket 用起來總覺得很多地方還處於迷霧狀態。 無論無何,我這邊也算是弄出來了, 寫到最後連 codeing style 都維護不能… 先講結論怎麼跑, 開 example 下的 service.php / hardware.php php -q service.php php -q hardware.php 網頁一樣開 example/testExample.php 因為我不清楚你 hardware 的 socket 是如何處理, 所以姑且做了一個偽 hardware, hardware 開起來會自動丟 counter, 理論上網頁開起來,連上後就看的到了, 同理網頁丟字進去也會自動扔到 hardware, 我的環境是 php 5.4 ,因為有用到匿名函數的 `use`, 所要確認一下猴大你的版本合不合, 至於其他整理 code 和文件什麼鬼的…等我有精神再好好弄吧… orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.172.160.74 ※ 編輯: gpmm 來自: 1.172.160.74 (05/19 05:33)
alpe:我3年前作過一次, 所以快很多啊. 這兩天在jsdc混 05/19 09:41
s25g5d4:jsdc 用socket.io做的聊天室正在被玩弄中 05/19 10:40
gpmm:socket.io 我們公司目前有在用 XDD 05/19 11:15
PsMonkey:哇靠... 你這幾乎是重新大改了耶 [跪拜之 Orz] 05/19 12:38
PsMonkey:有些技巧還沒辦法體會... [淚奔] 05/19 12:40
ckmarkhsu:我們家的工程師說Socket.io在高連線數的時候不穩定 05/19 18:04
ckmarkhsu:(他說他實作的時候好像是3K connection時遇到問題) 05/19 18:05
ckmarkhsu:所以現在看到他,都跳過QQ 05/19 18:05
ckmarkhsu: s 05/19 18:05
Darkland:nodejs 在高連線數時會被 V8 的 GC 搞死QQ 05/19 22:21