発生している問題・エラーメッセージ
◆https://qiita.com/okumurakengo/items/a8ccea065f5659d1a1de
こちらのページのサンプル1を参考にwebsocketの実装を行っているのですが、htmlからサーバーに接続しようとすると
WebSocket connection to 'wss://localhost:5001/' failed:
のエラーが出て正常に接続できません。
何かお気づきのことがありましたらご教授頂けないでしょうか。
宜しくお願い致します。
該当のソースコード
######index.js var server = require('ws').Server; var s = new server({port:5001}); s.on('connection',function(ws){ ws.on('message',function(message){ console.log("Received: "+message); s.clients.forEach(function(client){ client.send(message+' : '+new Date()); }); }); ws.on('close',function(){ console.log('I lost a client'); }); });
【追記】 こちらのhtmlはindex.jsをアップしているのと同じさくらvpsに上げて実行しています。 ######index.html <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <input type="button" id="sample" value="送信"> <script> var sock = new WebSocket('ws://127.0.0.1:5001'); // 接続 sock.addEventListener('open',function(e){ console.log('Socket 接続成功'); }); // サーバーからデータを受け取る sock.addEventListener('message',function(e){ console.log(e.data); }); document.addEventListener('DOMContentLoaded',function(e){ // サーバーにデータを送る document.getElementById('sample').addEventListener('click',function(e){ sock.send('hello'); }); }); </script> </body> </html>
試したこと
firewallのポートが解放されていないのが原因かと思い、解放を試したのですが、変わらずエラーが出ます。
public (active) target: default icmp-block-inversion: no interfaces: ens3 sources: services: cockpit dhcpv6-client http https ssh ports: 5001/tcp 3000/tcp 5000/tcp protocols: forward: yes masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
補足情報(FW/ツールのバージョンなど)
【追記】 サーバー さくらvps Server version: Apache/2.4.53 (CentOS Stream) Server built: Jan 30 2023 00:00:00 node.js v16.18.1 NAME="CentOS Stream" VERSION="9" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="9" PLATFORM_ID="platform:el9" PRETTY_NAME="CentOS Stream 9" ANSI_COLOR="0;31" LOGO="fedora-logo-icon" CPE_NAME="cpe:/o:centos:centos:9" HOME_URL="https://centos.org/" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 9" REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream"
サーバーはどこで動かしてますか?
ありがとうございます。
サーバーはさくらのvpsを使用しています。
また、パケットフィルターについても使用していません。
Web ブラウザはどこで動かしてアクセスしていますか?
ブラウザが手元のパソコンで動いてるなら、ws://127.0.0.1:5001/ は手元のパソコンのことなので、さくらの VPS で動いてるサーバーには繋がらないでしょうね…。
ありがとうございます。
ブラウザはindex.htmlのファイルを、index.jsをアップしているのと同じvpsに上げてアクセスしています。
すみません、サンプルはローカルでindex.htmlを動かしていましたね…
同一サーバーにファイルを上げていれば、127.0.0.1がローカルホストで同じサーバーにアクセスしていることになるという認識だったのですが、合っていますでしょうか?
ただ、ws://サーバーのipアドレス:5001/で実行した場合も同じエラーが発生しておりますが、こちらも何か認識が間違っていますでしょうか?
回答1件
あなたの回答
tips
プレビュー