看板 PHP 關於我們 聯絡資訊
標題好難下...... Orz 故事是這樣的,我需要用 PHP 建立起兩個 socket server 一個是標準的 socket server 另一個是 websocket server(其實也是 socket server) 然後它們彼此之間要溝通,因為我要做的事情是... hardware ←→ socket server ←→ websocket server ←→ browser 最原始的需求是 當 hardware 有了某些變化時要能夠在 browser 上做出反應 而 browser 上的某些操作要能反應在 hardware 上 所以我現在的作法是 browser 跟 web server 之間就用 websocket 解決 (不用考慮 cross-browser 真是開心) websocket server 也用 PHP 弄出來了 https://github.com/PsMonkey/HatePhp/tree/master/WebSocket 但是一旦 service.php 開始執行 $server->run() 之後的指令就都不會執行 (謎之聲:廢話,因為裡頭有個無窮迴圈) 我原本幻想在 service.php 當中同時有兩個 server 的 instance 這樣它們彼此之間就可以透過參數傳遞的方法溝通 但是現在看起來... 真的是幻想...... Orz 所以,想請教的是 1. 在 PHP 當中實作一個 socket server 只能用一個無窮迴圈這個方法嗎? 2. 有沒有辦法在一個 PHP 當中運作兩個 socket server? 3. 還是以我的需求來說,在 PHP 當中有正確的解法? (我承認我的想法很 Java,實在改不過來 Orz) 懇請各位幫忙突破盲點 [淚目] -- 錢鍾書: 說出來的話 http://www.psmonkey.org 比不上不說出來的話 Java 版 cookcomic 版 只影射著說不出來的話 and more...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.25.23.149
LaPass:拍拍.... 你也開始摸PHP了啊 05/18 00:01
PsMonkey:都是為了錢阿...... 05/18 00:17
olctw:用 pcntl_fork() ? http://goo.gl/qWiWM ,不過你的需求好像 05/18 00:19
olctw:用 node.js 解比較輕鬆自在 XD ,如果能夠掛上去的話 05/18 00:20
olctw:找著找著,看到這個 http://daemon.io/ (不過沒玩過) 05/18 00:28
PsMonkey:目前是在 windows 上,未來在什麼上不知道 05/18 00:46
PsMonkey:所以得考慮純 PHP 解,pcnt 也不能用 05/18 00:46
olctw:嗯,那就有點硬了... XD 05/18 00:50
gpmm:純 windows 還是可以跑 nodejs 啊 XD 05/18 01:07
johnny1972:你是想跑一個php.exe生出兩個server?還是跑兩個php.exe 05/18 01:11
johnny1972:各自生一個出來溝通? 05/18 01:11
PsMonkey:回樓上:基本上希望一個 php.exe 生出兩個 server 05/18 01:13
PsMonkey:但是兩個 php.exe 可以互相溝通也 ok 05/18 01:14
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
alpe:可能很久以前幹過類似的事, 找找 05/18 21:17
alpe:改完了, 可以作 05/18 22:55