如何在客户端和服务器向客户端发送新消息的服务器之间建立连接?

时间:2015-08-16 18:19:50

标签: php websocket ratchet phpwebsocket

我需要通过PHP websocket在客户端和服务器之间建立连接。

服务器需要继续使用外部API检查新消息并将其发送给客户端。

我想理解这个概念,所以我可以编写代码。我有一些问题可以帮助我把它包裹起来。

客户端 我是否每秒使用javascript的setInterval()功能通过websocket继续拨打服务器,还是只拨打一个电话?客户端如何知道服务器有新消息?

服务器端 我是否创建了一个运行无限循环的脚本来继续检查API并回显结果?

Websocket websocket如何知道邮件属于哪个连接?

我不确定这是否重要,但我将使用Ratchet来创建websocket

2 个答案:

答案 0 :(得分:1)

在过去的几天里,我通过Comet解决了这个问题。我用了Php,Node.js。你应该检查彗星技术并查找php和NOde.js。

http://www.screenr.com/SNH

http://blog.jamieisaacs.com/2010/08/27/comet-with-nginx-and-jquery/

答案 1 :(得分:0)

客户端:

没有。你已经联系了。没有民意调查可以执行。 (这是WebSockets的主要优势和目的。)

当服务器向客户端发送消息时,客户端将触发onmessage回调。

服务器端:

是的,您可以设置一个无限循环,以设定的间隔重新检查您的API。您还可以拥有一个“虚拟”WebSocket客户端,当有新信息可用时,它将向您的主WS服务器发送消息。您还可以使用过程信号。您还可以在API端点之间设置一个打开的套接字,以便在更新时通知您的服务器。您可以将API设置为在服务器上推送信息。还有几十种从侧面通道获取信息的其他方法,并且枚举它们(更不用说详细到任何一种方法)远远超出了这个问题的范围。

研究,了解每种方法的好处和限制,并实施最佳方法,这就是为什么你得到了大笔的支付,并被推迟作为主题专家。

WS服务器如何知道连接了哪个客户端

PHP套接字使用句柄 - 一个不透明的值,在PHP中恰好是一个整数,但绝不应该被视为除路标之外的任何其他内容,说明将消息发送到哪里。只要你的应用程序跟踪这个值(并且我相信Ratchet为你做了一些繁重的工作,在这方面)它仍然与你的用户对象相关联,你应该是好的。