サーバー全体を閉じることなくサーバーからWebSocket接続を終了することはできますか?それでは、どうしたらいいですか?WebSocket接続を終了するにはどうすればいいですか?
注:NodeJSをバックエンドと 'ws' websocketモジュールとして使用しています。
サーバー全体を閉じることなくサーバーからWebSocket接続を終了することはできますか?それでは、どうしたらいいですか?WebSocket接続を終了するにはどうすればいいですか?
注:NodeJSをバックエンドと 'ws' websocketモジュールとして使用しています。
あなたはこれを行うことができ、サーバを閉じずに、すべてのクライアントをキックしたい場合:
for(const client of wss.clients)
{
client.close();
}
あなたがしたい場合は、あまりにもwss.clients
をフィルタリングすることができ、それがあるべきws
で
特に1つを探します。
let WebSocketServer = require("ws").Server;
let wss = new WebSocketServer ({ port: 8080 });
wss.on('connection', function connection(ws) {
ws.send('something');
ws.close(); // <- this closes the connection from the server
});
と基本的なクライアント
"use strict";
const WebSocket = require("ws");
let ws = new WebSocket("ws://localhost:8080");
ws.onopen =() => {
console.log("opened");
};
ws.onmessage = (m) => {
console.log(m.data);
};
ws.onclose =() => {
console.log("closed");
};
であなたが得られます:あなたは(すなわち、それはなど不正なデータを送信します)接続ロジックの一部としてクライアントをキックしたい場合は、これを行うことができます:
d:/example/node client
opened
something
closed
var client = net.createConnection()
を使用してソケットを作成する場合は、client.destroy()
を使用してソケットを破棄できます。
var server = new WebSocketServer();
server.on('connection', function (socket) {
// Do something and then
socket.close(); //quit this connection
});
ws documentationによると、あなたは接続を終了するwebsocket.close()
を呼び出す必要があります。
let server = new WebSocketServer(options);
server.on('connection', ws => {
ws.close(); //terminate this connection
});
強行は、スタックオーバーフローに、このように()
var socketServer = new WebSocketServer();
socketServer.on('connection', function (ws) {
ws.close(); //Close connecton for connected client ws
});
ようこそws.closeを使用します!最初に[ツアー](http://stackoverflow.com/tour)にアクセスし、[よくある質問をする方法](http://stackoverflow.com/help/how-to-ask)を学んで[最小、完全、および検証可能](http://stackoverflow.com/help/mcve)の例を参照してください。私たちがあなたを助けてくれるのは簡単です。 –
ブラウザの更新が問題を解決しませんか? – Lazyexpert