我运行的是autobahn/TwistedPythonWebSocket服务器,向客户端发送消息时遇到问题。它似乎只在客户端发送消息时才向客户端发送消息。出于某种原因,如果我想强制将消息发送到已连接的客户端,则消息会被卡在队列中,直到任何客户端向我发送消息为止。此时,所有排队的消息都将发送到所有客户端
我能够针对这个python autobahn/twisted websocket服务器使用python客户端和javascript客户端重现这种行为
有人能告诉我如何正确地从websocket服务器向所有连接的客户端发送消息吗?我的目标是让客户端订阅事件,然后服务器只向它们发送事件消息。但出于某种原因,上述行为不允许服务器向客户端发送消息,除非他们首先向服务器发送消息
您可以使用下面的代码轻松地复制它:您只需要一台服务器和一台客户端就可以复制它。我使用了两个不同的客户端来证明问题出在服务器上
Autobahn/twisted python websocket server
无论我使用哪个websocket客户端,我都看到了相同的行为。很明显,websocket服务器出于某种原因正在将消息排队
服务器每5秒在其声称正在发送消息的点上记录一次日志
Python客户端显示服务器发送消息和Python客户端接收消息的时间差。请注意,它们是成片出现的,有些出现了巨大的延迟
Javascript客户端只有在向服务器发送一条新消息后才能将它们分成4块
Twisted API不是线程安全的。除了
reactor.callFromThread
之外,您只能在运行reactor的线程中调用它们首先,尝试在基于Twisted的程序中完全不使用多线程。我在你的代码中没有看到任何调用多线程的东西
相关问题 更多 >
编程相关推荐