【发布时间】:2017-11-22 14:30:44
【问题描述】:
我在 tornado 中编写了一个 websocket 服务器,并在收到消息时调用 on_message 方法。问题是,默认情况下消息大小是无限的,换句话说,通过从客户端向 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)
【问题讨论】: