作者gpmm (銀色)
看板PHP
標題Re: [請益] 兩個 socket server 之間的溝通?
時間Sat May 18 00:41:53 2013
※ 引述《PsMonkey (痞子軍團團長)》之銘言:
: 標題好難下...... 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)
: 懇請各位幫忙突破盲點 [淚目]
這一段拆去用 nodejs / socket.io 解會方便非常多,
聽起來猴大你 long polling(client <-> server)的地方已經處理好了,
反而是 server <-> server 遇到狀況是嗎?
如果你的 long polling 在 PHP 裡已是跑無窮迴圈來解的話,
那其實就讓兩個檔案互相溝通就好了,
或著如果你的環境可以的話,也可以考慮裝 ZMQ (應該會有幫助)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.172.160.74
→ PsMonkey:囧> 就是想問怎麼讓兩個(PHP)檔案互相溝通.... 05/18 00:47
→ PsMonkey:ZMQ 之前的討論有看過,但是不敢用...... 05/18 00:47
→ alpe:提問 ZMQ 是? google一下是 ZeroMQ 嗎? 05/18 23:31
→ gpmm:是的,就是 zeromq 05/19 03:02
推 Wush978:看完也第1時間想到ZMQ... XD 05/19 10:17