【发布时间】:2019-09-01 23:26:47
【问题描述】:
我正在尝试了解如何正确使用 websocket,但似乎遗漏了难题的一些基本部分。
假设我有一个包含 3 个不同页面的网站:
- newsfeed1.html
- newsfeed2.html
- newsfeed3.html
当用户访问其中一个页面时,他们会获得特定于该页面的提要,即 newsfeed1.html = 体育、newsfeed2.html = 世界新闻等。
有一个 CoreApplication.py 可以完成获取数据和解析等的所有处理。
然后有一个 WebSocketServer.py,使用说 Autobahn。
我看过的所有示例,而且很多,似乎只对来自 WebSocketServer.py 中的客户端(浏览器)的消息做出反应,想想聊天回显示例。因此,客户端浏览器会发送一条聊天消息,并将其回显或广播到所有连接的客户端浏览器。
我想弄清楚的是以下两个组成部分:
CoreApplication.py
WebSocketServer.py
如何最好地使 CoreApplication.py 与 WebSocketServer.py 进行通信,以便向连接的用户发送消息。
CoreApplication.py 通常应该简单地将命令消息作为客户端发送到 WebSocketServer.py。比如这样:
CoreApplication.py -> 作为普通客户端连接到 WebServerSocket.py -> 发送 Json 命令消息(如向所有用户广播消息 X || 向特定远程客户端发送消息 Y) -> WebSocketServer.py 确定如何处理传入的消息取决于哪个客户端连接到哪个提要并发送到相应的远程客户端浏览器。
或者,CoreApplication.py 是否应该以编程方式与 WebSocketServer.py 连接?因为我似乎找不到任何能够做到这一点的例子,例如使用高速公路或其他简单的网络套接字,因为一旦 WebSocketServer 被实例化,它似乎就在循环中运行并且不接受外部 sendMessage 请求?
所以总结一下这个问题:最佳实践是什么?简单地让 CoreApplication.py 与 WebSocketServer.py 作为客户端(使用特殊的命令数据)进行交互,或者让 CoreApplication.py 通过一些更直接的方法使用已经运行的 WebSocketServer.py 实例(两者都在同一台机器上)无需先与 WebSocketServer.py 服务器建立完整的 websocket 连接即可直接发送消息?
【问题讨论】: