3

私は Autobahn WS サーバーを実行しており、Python websocket-client ( https://pypi.python.org/pypi/websocket-client/ ) を使用してクライアントから接続しています。

私のクライアントコードはとてもシンプルです:-

from websocket import create_connection

# WS_URL is a valid endpoint
ws = None
try:
    ws = create_connection(WS_URL)
except:
    print 'Could not connect to websocket server ...'

sample_message = "Hello world"
while True:
    if ws is not None:
        ws.send(sample_message)

これはしばらくの間は正常に機能しますが、その後エラーが表示されます:-

エラー: [Errno 104] ピアによって接続がリセットされました

調べてみると、何らかのタイムアウトエラーに関連しているようです。誰でもこれを修正する方法を提案できますか?

アップデート

サーバー側を確認するためだけに、WS サーバーはアウトバーンのドキュメント ( https://github.com/tavendo/AutobahnPython/blob/master/examples/websocket/broadcast/server.py ) のストック "ブロードキャスト" の例を単純に使用しています。したがって、クライアントから受信したメッセージは、接続されているすべてのクライアントにエコー バックされます。

UPDATE2

デバッグのヒントをありがとう。私はこれを実行し、エラーが発生したとき、これはデバッグ トレースからの出力です:-

2013-10-16 12:47:47+0000 [BroadcastServerProtocol,0,172.20.12.9]  WebSocketProtocol.onClose:
    wasClean=False
    code=1006
    reason=connection was closed uncleanly (peer dropped the TCP connection without previous WebSocket closing handshake)
    self.closedByMe=False
    self.failedByMe=False
    self.droppedByMe=False
    self.wasClean=False
    self.wasNotCleanReason=peer dropped the TCP connection without previous WebSocket closing handshake
    self.localCloseCode=None
    self.localCloseReason=None
    self.remoteCloseCode=None
    self.remoteCloseReason=None

接続が切断されたのはなぜですか? エラーは再現可能で、約 10 分後に発生します。実行ごとに同じ時間 (~ 5 時間)。

4

0 に答える 0