前提・実現したいこと
WebSocketを使用したく、門外漢ですが基礎的なところを勉強しています。
LAN外のクライアントからサーバにWebSocketで接続したいのですが、うまくいきません。
クライアントをサーバと同一LAN内におくと接続できるので、WANから接続するための設定ができていないのだと思いますが、
何を設定する必要があるのでしょうか?
発生している問題・エラーメッセージ
Node.jsで8081番にWebSocketサーバを立てています。
クライアント端末のChromeのデベロッパーツールのコンソールから接続を試みていますが、
まず、クライアント端末をサーバと同一LAN内に置いた場合
const con = new WebSocket('ws://(サーバのローカルIP):8081');
で問題なく接続できます。
次に、クライアント端末をサーバのLANの外側に置いた場合、
const con = new WebSocket('ws://(サーバのグローバルIP):8081');
とすると以下のエラーが出ます
VM233:1 WebSocket connection to 'ws://XXX.XXX.XXX.XXX:8081/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED (anonymous) @ VM233:1
インターネットルータのポートマッピングは
WAN側8081をLAN側サーバアドレスの8081番にマッピングしています。
該当のソースコード
Nodejs
1//サーバ側のソースコード 2const server = require('ws').Server; 3const ws = new server({ port: 8081 }); 4 5ws.on('connection', socket => { 6 console.log('connected!'); 7 8 socket.on('message', ms => { 9 console.log(ms); 10 }); 11 12 socket.on('close', () => { 13 console.log('good bye.'); 14 }); 15});
試したこと
補足情報(FW/ツールのバージョンなど)
クライアント:Windows10, Chromeデベロッパーツール
サーバ:Ubuntu, Node.js
ネットワーク環境:KDDI ポケットWifi(グローバルIPあり)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/05 08:45 編集
2020/07/05 08:59
2020/07/05 11:30