作者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
1F:→ PsMonkey:囧> 就是想问怎麽让两个(PHP)档案互相沟通.... 05/18 00:47
2F:→ PsMonkey:ZMQ 之前的讨论有看过,但是不敢用...... 05/18 00:47
3F:→ alpe:提问 ZMQ 是? google一下是 ZeroMQ 吗? 05/18 23:31
4F:→ gpmm:是的,就是 zeromq 05/19 03:02
5F:推 Wush978:看完也第1时间想到ZMQ... XD 05/19 10:17