0

Python 3.3 と asyncio 0.4.1 の仮想環境でAutobahn の例を動作させようとしていますが、Chrome は 1006 を表示し続けます。

デバッグ オプション (factory.debug = True) を発見した後、次のサーバー出力に遭遇しました。

[('debug', True, 'WebSocketServerFactory'),
 ('debugCodePaths', False, 'WebSocketServerFactory'),
 ('logOctets', False, 'WebSocketServerFactory'),
 ('logFrames', False, 'WebSocketServerFactory'),
 ('trackTimings', False, 'WebSocketServerFactory'),
 ('allowHixie76', False, 'WebSocketServerFactory'),
 ('utf8validateIncoming', True, 'WebSocketServerFactory'),
 ('applyMask', True, 'WebSocketServerFactory'),
 ('maxFramePayloadSize', 0, 'WebSocketServerFactory'),
 ('maxMessagePayloadSize', 0, 'WebSocketServerFactory'),
 ('autoFragmentSize', 0, 'WebSocketServerFactory'),
 ('failByDrop', True, 'WebSocketServerFactory'),
 ('echoCloseCodeReason', False, 'WebSocketServerFactory'),
 ('openHandshakeTimeout', 5, 'WebSocketServerFactory'),
 ('closeHandshakeTimeout', 1, 'WebSocketServerFactory'),
 ('tcpNoDelay', True, 'WebSocketServerFactory'),
 ('versions', [0, 8, 13], 'WebSocketServerFactory'),
 ('webStatus', True, 'WebSocketServerFactory'),
 ('requireMaskedClientFrames', True, 'WebSocketServerFactory'),
 ('maskServerFrames', False, 'WebSocketServerFactory'),
 ('perMessageCompressionAccept',
  <function WebSocketServerFactory.resetProtocolOptions.<locals>.<lambda> at 0x7faa2f6ac830>,
  'WebSocketServerFactory')]
connection accepted from peer 127.0.0.1:48000
received HTTP request:

b'GET / HTTP/1.1\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nHost: 127.0.0.1:9000\r\nOrigin: http://127.0.0.1:8000\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nSec-WebSocket-Key: oOzANrxgacD4wL0/x6EUEA==\r\nSec-WebSocket-Version: 13\r\nSec-WebSocket-Extensions: permessage-deflate; client_max_window_bits, x-webkit-deflate-frame\r\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36\r\nCookie: csrftoken=jznso3LOJR5EGYAmNSbuW3q8q2SurO71\r\n\r\n'


received HTTP status line in opening handshake : GET / HTTP/1.1
received HTTP headers in opening handshake : {'sec-websocket-extensions': 'permessage-deflate; client_max_window_bits, x-webkit-deflate-frame', 'cookie': 'csrftoken=jznso3LOJR5EGYAmNSbuW3q8q2SurO71', 'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36', 'pragma': 'no-cache', 'upgrade': 'websocket', 'host': '127.0.0.1:9000', 'cache-control': 'no-cache', 'sec-websocket-key': 'oOzANrxgacD4wL0/x6EUEA==', 'sec-websocket-version': '13', 'connection': 'Upgrade', 'origin': 'http://127.0.0.1:8000'}
failing WebSocket opening handshake ('port 9000 in HTTP Host header '127.0.0.1:9000' does not match server listening port None')
connection from 127.0.0.1:48000 lost

この例で明示的に 9000 に設定されている場合、ポートを None にするにはどうすればよいでしょうか?

4

1 に答える 1

1

うん。最近、WebSocket URL を提供せずにファクトリを定義できるようにするパッチをマージし、例を調整しましたが、PyPi にはリリースしませんでした。ごめん。

私は今、リリース(0.8.6)をしました。したがって、次のいずれかを実行できます。

pip install -U autobahn

またはサンプルコードを次のように変更します

factory = WebSocketServerFactory("ws://localhost:9000")

またすみません ..

于 2014-03-20T21:56:21.460 に答える