2016-02-01 4 views
0

У меня есть сервер websocket, использующий autobahn, где он запускает некоторый код onMessage.Как сделать autobahn/twisted websocket server restart/stay up after

во время этого кода происходит исключение, и я выполняю предложение 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 будет продолжать принимать соединения и дать другим клиентам возможность работать?

+0

Где ваш 'try' /' except' блок? –

+0

Нашли ошибку. Я поместил «реактор.callFromThread (реактор.стоп) » в другом месте кода, и он убивал реактор. – user1601716

ответ

0

Обнаружена проблема. Я разместил «реактор.callFromThread (реактор.стоп)» в другом месте кода, и он убивал реактор.

Смежные вопросы