前提・実現したいこと
ブラウザ経由でのWebsocket通信(異なるホスト間の通信)についてです。(開発初心者のため言葉が適切でなく、拙い文章ですが、どうかお願いします)
具体的には、同じホスト(MacPC:ホストA)でhttpserber(ポート8001)とwebsocketserver(ポート9001)を立ち上げ、他のホスト(iPhone:ホストB)からホストAのIPアドレス(http://192.168.11.10:8001)にアクセスし、ブラウザ上で動くjavascriptからホストAのWebsocketserverと通信がしたいです。
発生している問題・エラーメッセージ
ブラウザを開くのも、serverを立てるのも同じホストでローカルホストIPを使用しての通信は行うことができましたが、javascript(index.html)内のローカルホストIPをプライベートIPに変更し、通信しようとするとエラーが生じ、通信ができません。
エラーメッセージ ブラウザ上のコンソールにて、 WebSocket connection to 'ws://192.168.11.10:9001/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED)
該当のソースコード
javascript
1 <script language="JavaScript"> 2 3 //↓プライベートIPに変更すると通信ができません。 4 5 //var sock = new WebSocket('ws://127.0.0.1:9001'); 6 var sock = new WebSocket('ws://192.168.11.10:9001'); 7 8 // 接続 9 sock.addEventListener('open',function(e){ 10 console.log('Socket 接続成功'); 11 }); 12 13 // サーバーからデータを受け取る 14 sock.addEventListener('message',function(e){ 15 console.log(e.data); 16 }); 17 18 window.addEventListener('DOMContentLoaded',function(e){ 19 // サーバーにデータを送る 20 21 </script>
試したこと
iPhone(ホストB)が問題かと思い、同じホスト(MacPC:ホストA)でブラウザからアクセス(http://192.168.11.10:8001)し、websocketserverとの通信を試みるも(ws://192.168.11.10:9001)、エラーが生じ、通信できませんでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。