あいまいな質問に対する謝罪 - 私は実際にこれが働かなくなった私が何を変えたのか分かりません。後にwebsocket.recv()でハングアップしますか?
私はWebSocketを使用してPythonでテキストアドベンチャーエンジン(オープンソースプロジェクト)に取り組んでいます。 これはasyncioとwebsocketsモジュールでうまくいきました。私は物事を少し動かし、今入力を受け取ったときにハングアップします。
私は嘘をついた - それは決して働かなかった。このコードは、しかし、作業を行います。
#!/usr/bin/python3
import asyncio
import websockets
import time
async def hello(websocket, path):
while True:
name = await websocket.recv()
print("< {}".format(name))
greeting = ''.join(name + "... " for x in range(5))
await websocket.send(greeting)
print("> {}".format(greeting))
time.sleep(0.1);
start_server = websockets.serve(hello, '', 26231)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
私のコード(動作しないコード)は、それぞれのGitHubのレポで提供されています:
https://github.com/KernelDeimos/mmota-server/issues/1
その後、私は「時間があるとき私のクライアント用のリポジトリを追加し、ここでもリンクしていますが、それは非常に基本的です(作業コミットと壊れたクライアントの間でクライアントに変更はありません)。
クライアントは、ローカルホストに接続します。26231と私は入力したメッセージを送信する(例:「エコー」を)
サーバーはメッセージを送り返す - あるいは少なくとも、それがになっています。
残念ながら、サーバはserver.pyのこの行にハング:
data = await self.websocket.recv()
と次の行に印刷が実行されることはありません。
[クロスポスト]しないでください(http://meta.stackexchange.com/tags/cross-posting/info):http://programmers.stackexchange.com/q/323276 –
私の投稿を削除しましたプログラマーStackExchange。 downvoteを元に戻すほど優しいですか? –