我正在尝试使用 websocket 编写客户端/服务器应用程序。我正在考虑使用 Autobahn websocket 作为我的通信媒介。客户端将向服务器发送命令以执行任务,然后等待服务器的一系列进度响应。在服务器中,我收到客户端的命令后,执行一系列任务,然后调用 self.sendMessage("percent completed") % (percent) 给客户端。我遇到的问题是 sendMessage 似乎缓冲了所有消息,然后在最后一次全部发送。关于如何解决这个问题的任何想法?这是来自 websocket/example/echo/server.py 的代码片段:
import sys
import time
from twisted.internet import reactor
from twisted.python import log
from twisted.web.server import Site
from twisted.web.static import File
from autobahn.websocket import WebSocketServerFactory, \
WebSocketServerProtocol, \
listenWS
class EchoServerProtocol(WebSocketServerProtocol):
def onMessage(self, msg, binary):
self.sendMessage("server respond message 1", binary)
time.sleep (2)
self.sendMessage("server response message 2", binary)
time.sleep (2)
self.sendMessage("server response message 3", binary)
我希望客户端每 2 秒从服务器接收一条消息,而不是一次获取所有三条消息。