[解決済み] webSocketServer node.js クライアントを区別する方法
2023-01-25 17:25:32
質問
node.jsでソケットを使おうとしているのですが、成功したのですが、コード内でクライアントをどのように区別すればいいのかわかりません。 ソケットに関する部分はこれです。
var WebSocketServer = require('ws').Server,
wss = new WebSocketServer({port: 8080});
wss.on('connection', function(ws) {
ws.on('message', function(message) {
console.log('received: %s', message);
ws.send(message);
});
ws.send('something');
});
このコードは私のクライアントjsで問題なく動作します。
しかし、私は特定のユーザーまたは私のサーバーでソケットを開いているすべてのユーザーにメッセージを送信したいと思います。
私の場合、私はクライアントとしてメッセージを送信し、私は応答を受け取りますが、他のユーザは何も表示されません。
例えば、user1 が webSocket を介してサーバーにメッセージを送信し、私はソケットを開いている user2 に通知を送信したいと思います。
どのように解決するのですか?
CLIENTS[]という配列にユーザIDを代入すると、すべてのユーザが含まれるようになります。以下のように、すべてのユーザーに直接メッセージを送信することができます。
var WebSocketServer = require('ws').Server,
wss = new WebSocketServer({port: 8080}),
CLIENTS=[];
wss.on('connection', function(ws) {
CLIENTS.push(ws);
ws.on('message', function(message) {
console.log('received: %s', message);
sendAll(message);
});
ws.send("NEW USER JOINED");
});
function sendAll (message) {
for (var i=0; i<CLIENTS.length; i++) {
CLIENTS[i].send("Message: " + message);
}
}
関連
-
[解決済み] 非推奨パッケージに関するNPM警告メッセージ
-
[解決済み] Node.jsのプログラムにコマンドライン引数を渡すにはどうしたらいいですか?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Node.jsで終了する方法
-
[解決済み] Node.jsでファイルを書き込む
-
[解決済み] Node.jsアプリケーションをデバッグするにはどうすればよいですか?
-
[解決済み] Node.jsを完全にアンインストールして、最初から再インストールする方法 (Mac OS X)
-
[解決済み] Node.jsのmodule.exportsの目的と使い方を教えてください。
-
[解決済み] Node.jsで環境変数を読み込む
-
[解決済み] Node.jsのnpmモジュールをアンインストールするにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Discord.js が特定のチャンネルにメッセージを送信する場合
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み】エラー TRK0005: 位置特定に失敗しました。"CL.exe"
-
[解決済み】Nodejsの解決方法:Error: ENOENT: そのようなファイルまたはディレクトリがありません
-
[解決済み】「npm install」と「npm rebuild」の違いとは?
-
[解決済み] bodyParser は非推奨です express 4
-
[解決済み] ExpressJS : res.redirect()が期待通りに動作しない?
-
[解決済み] Yarn にパッケージを強制的に再インストールさせるにはどうしたらいいですか?
-
[解決済み] NodeJsのSequelizeでautoIncrementはどのように動作するのですか?
-
[解決済み】Ignore Typescript Errors "property does not exist on value of type" (タイプの値にプロパティが存在しない)。