Возможно ли прекратить соединение с сервером без закрытия всего сервера? Если это так, как я могу это достичь?Как закрыть соединение с WebSocket?
Примечание: Я использую NodeJS в качестве back-end и 'ws' websocket module.
Возможно ли прекратить соединение с сервером без закрытия всего сервера? Если это так, как я могу это достичь?Как закрыть соединение с WebSocket?
Примечание: Я использую NodeJS в качестве back-end и 'ws' websocket module.
Если вы хотите пнуть ВСЕХ клиентов, не закрывая сервер вы можете сделать это:
for(const client of wss.clients)
{
client.close();
}
вы также можете фильтровать wss.clients
тоже, если вы хотите ищите его, в частности. Если вы хотите, чтобы пнуть клиента как часть логики соединения (т.е. он посылает неверные данные и т.д.), вы можете сделать это:
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()
, чтобы уничтожить его.
С ws
должно быть:
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
});
Jus использовать ws.close() таким образом
var socketServer = new WebSocketServer();
socketServer.on('connection', function (ws) {
ws.close(); //Close connecton for connected client ws
});
Добро пожаловать на переполнение стека! Сначала вы можете взять [тур] (http://stackoverflow.com/tour) и узнать [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) и создать [ Minimal, Complete и Verifiable] (http://stackoverflow.com/help/mcve). Нам будет легче помочь вам. –
Обновление браузера не поможет решить вашу проблему? – Lazyexpert