어떻게 sendMessage 오류를 잡을 수 있습니까? 예외 전파가 없습니다. 서버가 다운 (반 개방 연결) 때 클라이언트 코드에서 오류를 catch하고 싶습니다. websocket 데몬을 실행하는 서버가 충돌하거나 재부팅되거나 네트워크 연결이 끊어지는 경우 closeConnection/ConnectionLost/ConnectionFailed 콜백이 작동하지 않습니다.Autobahn : catch sendMessage 오류
from autobahn.websocket import WebSocketClientProtocol
class ClientProtocol(WebSocketClientProtocol):
def onOpen(self):
def heartbeat():
self.sendMessage("HB")
self.factory.reactor.callLater(1, heartbeat)
# I want to catch a socket error
try:
heartbeat()
except Exception as e:
print e
아마도 이보다 더 좋은 해결책이있을 수 있습니다. 탁구 ? 간단히 말해서 클라이언트가 서버 충돌/재부팅을 감지하고 다시 연결하는 방법을 찾을 수 없습니다. 웹 소켓 핑/퐁 :
나는
WebSocketClientProtocol (0.9.4-2)에서 _sendAutoPing에 대한 callLater가 누락되었습니다. 그것없이 클라이언트는 autoping 기능을 지원하지 않습니다. 나는 그것을 추가했고 이제는 모든 것이 잘 작동한다. 감사합니다 – se7en
그럴 경우, 문제를 제기하고 PR 할 수 있습니까? – oberstet