PHP和Symfony的Websockets - 网络和服务器架构

时间:2016-06-03 12:36:09

标签: php symfony architecture websocket

我们有一个Web应用程序,目前使用轮询来处理持续更新。

虽然切换到长轮询可能是这个问题的一个小问题,但我们希望实现一个持久且可扩展的Websockets解决方案。

我的问题是:这个需要什么样的架构?

我自己做了一些研究,发现企业应用程序的典型设置是这样的:websocket flow

然后连接的执行流程将是这样的:

  1. 初步握手
    • 客户端向HTTP发送Server请求以及JS请求Websocket连接
    • Server回复,Header包含Upgrade指令并切换该客户端的协议
    • Websocket Server与客户端建立Websocket连接
  2. 客户提交POST / PUT /等。
    • Webserver(Apache / Nginx)从查询中获取结果
    • Webserver将结果发送到MQ,并将其添加到队列
    • MessageWebsocket
    • 发送到MQ服务器
    • Message被发送回客户端
  3. 这种做法是否正确?我错过了什么吗?我是否理解错误的东西?

2 个答案:

答案 0 :(得分:2)

试着看一下:socketo.me

有点给你一个主意。从我所看到的情况来看,这与您在发布的架构图中所设想的非常相似。

也值得一看Stackoverflow question's answer

答案 1 :(得分:0)

你试过GOS WebSocketBundle吗? 我已经在生产网站上使用它来处理聊天,并且与stunnel一起使用它可以完美地通过SSL。