我有一个用python tornado编写的websocket服务器。服务器将从客户机接收许多连接,正如您所知,我们
on_message
接收WebSocket消息时激发的函数。所以,我的问题是,如果一条消息(比如来自客户机的请求)需要5秒的时间来处理,那么当服务器处理某个请求时,服务器将进入阻塞模式,无法接受或接收更多的连接或数据。经过研究,我发现
Asyncio
可以解决我的问题,但我现在不知道如何使用它。那么,我该怎么打电话
process
避免阻塞的方法?
以下是我的代码:
class WavesClient(tornado.websocket.WebSocketHandler):
def check_origin(self, origin):
return True
def open(self):
print("New client connected")
def on_message(self, message):
self.process(message)
def on_close(self):
print("Client disconnected")
def process(self,message):
#it takes 5 sec to complete