我试图理解如何正确使用websockets,似乎错过了这个难题的一些基本部分。
假设我有一个包含3个不同页面的网站:
当用户访问其中一个页面时,他们会获得特定于页面的Feed,即newsfeed1.html = sport,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确定如何处理传入消息,具体取决于哪个客户端连接到哪个源并根据远程客户端浏览器发送。
OR,CoreApplication.py应该以编程方式与WebSocketServer.py连接吗?因为我似乎无法找到能够使用Autobahn或其他简单Web套接字执行此操作的任何示例,因为一旦WebSocketServer被实例化,它似乎在循环中运行并且不接受外部sendMessage请求?
总结一下这个问题:最佳做法是什么?简单地使CoreApplication.py作为客户端(使用特殊命令数据)与WebSocketServer.py交互,或者通过更直接的方法使CoreApplication.py使用已经运行的WebSocketServer.py实例(两者都在同一台机器上)直接sendMessages而不必先将完整的websocket连接到WebSocketServer.py服务器?
答案 0 :(得分:0)
这取决于您的软件设计,如果您决定WebSocketServer.px和CoreApplication.py的逻辑属于一起,请合并它。
如果没有,您需要某种进程间通信(ipc)。 您可以为此ipc使用websockets,但我建议您使用更简单的东西。例如,您可以通过tcp或unix域json-rpc将控制消息从CoreApplication.py发送到WebSocketServer.py