如何使高速公路/扭曲的websocket服务器在异常后重启/熬夜

时间:2016-02-01 22:39:50

标签: python twisted autobahn twisted.internet

我有一个使用autobahn的websocket服务器,它在onMessage上运行一些代码。

在此代码中发生异常并执行try / except子句,以便我可以记录错误,它正确记录。但是,与客户端(javascript)的连接断开连接。

问题是,如果我加载新页面,它不会重新连接到websocket服务器。我尝试将代码块放在while循环中启动服务器,但客户端没有成功连接。

if __name__ == '__main__':

    import sys

    from twisted.python import log
    from twisted.internet import reactor, task, threads
    logging.basicConfig(filename='/var/log/myerror.log', level=logging.ERROR)

    log.startLogging(sys.stdout)

    factory = WebSocketServerFactory(u"ws://127.0.0.1:9000", debug=False)
    factory.protocol = MyServerProtocol
    factory.setProtocolOptions(maxConnections=50)

    reactor.listenTCP(9000, factory)
    reactor.run()

有人知道如何制作它,即使代码在' onMessage'有一个例外,websocket服务器将继续接受连接并为其他客户提供运行的机会吗?

1 个答案:

答案 0 :(得分:0)

发现问题。我放置了#reactor.callFromThread(reactor.stop)'代码中的其他地方,它正在杀死反应堆。