Python 如何限制tornado websocket邮件大小
我在tornado中编写了一个websocket服务器,当收到消息时,会调用消息上的Python 如何限制tornado websocket邮件大小,python,websocket,tornado,Python,Websocket,Tornado,我在tornado中编写了一个websocket服务器,当收到消息时,会调用消息上的on方法。问题是,defualt不限制消息的大小,换句话说,通过从客户端向websocket发送一个巨大的数据(消息),项目会被打开,从而导致服务器端内存满。必须有一个选项来限制传入消息的大小,是吗?如果没有,我必须做些什么来避免这种错误呢?这是我的代码,用于获取长度小于128字节的消息,但它似乎不起作用。 class ClientWebSocketConnectionHandler(tornado.websoc
on
方法。问题是,defualt不限制消息的大小,换句话说,通过从客户端向websocket发送一个巨大的数据(消息),项目会被打开,从而导致服务器端内存满。必须有一个选项来限制传入消息的大小,是吗?如果没有,我必须做些什么来避免这种错误呢?这是我的代码,用于获取长度小于128字节的消息,但它似乎不起作用。
class ClientWebSocketConnectionHandler(tornado.websocket.WebSocketHandler):
def open(self):
print "Connection is opened"
def on_message(self, message):
print message
def on_close(self):
print "closed"
handlers = [(r'/', ClientWebSocketConnectionHandler)]
tornado.web.Application.__init__(self, handlers)
TheShieldsWebSocket = MainApplication()
server =tornado.httpserver.HTTPServer(TheShieldsWebSocket,max_body_size=128)
server.listen(8080)
请查看此处的文档: 要对链接进行解释以备将来使用,请执行以下操作: 设置最大实体大小(最大实体大小)[来源] 设置单个请求的正文大小限制 重写HTTP1ConnectionParameters中的值
由于版本4.5,如果Tornado在单个websocket框架(消息)中接收到超过10个MiB的数据,它将自动关闭连接。因此,您不必担心有人在一条消息中发送大量数据。你可以在地图上看到这一点。第二段最后一段的文档中也提到了这一点 如果要更改默认帧限制,可以向
应用程序
传递一个名为websocket\u max\u message\u size
的参数,该参数的大小以字节为单位
app = tornado.web.Application(
# your handlers etc,
websocket_max_message_size=128
)
我刚刚编辑了我的帖子。能否请您输入一个接收有限消息长度的websocket服务器代码示例?