websocketの同じLANでのPC通信

起こっていること

ubuntuでwebsocketを使おうと思いpythonでサーバーを作成してlocalhostでは接続できるのですが同じLANに接続している他のPCでは接続できませんでした。
初心者でいたらぬところがありますがよろしくおねがいします。
ubutnu 20.4LTS
python3 3.8.10

実現したいこと

  • 同じLAN内の別PCでのwebsocketの通信

該当のソースコード

プログラムはほぼコピペになっています参考元は下記にはらせていただきます。
サーバー側

python

from websocket_server import WebsocketServer import logging class Websocket_Server(): def __init__(self,port,host): self.server = WebsocketServer(port=port, host=host, loglevel=logging.INFO) print("a") # クライアント接続時に呼ばれる関数 def new_client(self, client, server): print("new client connected and was given id {}".format(client['id'])) # 全クライアントにメッセージを送信 self.server.send_message_to_all("hey all, a new client has joined us") # クライアント切断時に呼ばれる関数 def client_left(self, client, server): print("client({}) disconnected".format(client['id'])) # クライアントからメッセージを受信したときに呼ばれる関数 def message_received(self, client, server, message): print("client({}) said: {}".format(client['id'], message)) # 全クライアントにメッセージを送信 self.server.send_message_to_all(message) # サーバーを起動する def run(self): # クライアント接続時のコールバック関数にself.new_client関数をセット self.server.set_fn_new_client(self.new_client) # クライアント切断時のコールバック関数にself.client_left関数をセット self.server.set_fn_client_left(self.client_left) # メッセージ受信時のコールバック関数にself.message_received関数をセット self.server.set_fn_message_received(self.message_received) self.server.run_forever() IP_ADDR = "0.0.0.0" # IPアドレスを指定PORT= 8080 # ポートを指定ws_server = Websocket_Server(PORT,IP_ADDR)ws_server.run()

クライアント側

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JavaScriptでソケット通信(WebSocket)する方法</title> </head> <body> <h1>JavaScriptでWebSocket</h1> <label>WebSocket通信を【wss://echo.websocket.org】と行います。</label><br> <input type="button" value="コネクション開始" onclick="open_cnn()"><br> <br> <input type="text" id="SndMsg" placeholder="送信メッセージを入力"><br> <input type="button" value="上記メッセージを送信" onclick="snd_msg()"><br> <br> <textarea id="RcvMsg" cols="40" rows="4" maxlength="20" placeholder="送信と同時に同じ内容が、受信メッセージとして反映されます。"></textarea><br> <input type="button" value="コネクション終了" onclick="close_cnn()"><br> <br> <script type="text/javascript"> var connection = ""; //コネクション開始ボタン function open_cnn(){ console.log("コネクションを開始しします。"); connection = new WebSocket('ws://10.1.5.71:8080'); //コネクションが接続された時の動き connection.onopen = function(e) { console.log("コネクションを開始しました。"); }; //エラーが発生したされた時の動き connection.onerror = function(error) { console.log("エラーが発生しました。"); }; //メッセージを受け取ったされた時の動き connection.onmessage = function(e) { let msg = "メッセージを受信しました。" + e.data; document.getElementById("RcvMsg").value = msg; }; //通信が切断された時の動き connection.onclose = function() { console.log("コネクションを終了しました。"); }; } //メッセージ送信ボタン function snd_msg(){ connection.send(document.getElementById("SndMsg").value); } //コネクション終了ボタン function close_cnn(){ connection.close(); } </script> </body> </html>

試したこと

$nc -v -w 1 10.1.5.71 -z 8080

上記のコマンドを使いアクセスできるか確認したところサーバー側ではアクセスができたがクライアントではアクセスできなかった。

補足情報(ソースコードの参考場所)

サーバー
クライアント

コメントを投稿

0 コメント