如何断开 socket.io 与客户端的连接并重新连接
How to disconnect and reconnect socket.io from client?
我有从服务器到客户端发出的日志消息,并且始终从服务器和日志记录发送到客户端,现在我有额外的功能来停止和播放日志以向用户提供一些控制,所以我正在考虑停止断开连接socket.io
并在播放时再次开始socket.io
连接, 首先,我正在尝试停止断开连接,但我无法向服务器发出消息,知道下面的代码有什么问题或更好的解决方案来完成这些任务吗?主.html
<button type="button" class="btn btn-success" ng-click="stopLogs()">stop</button>
控制.js
$scope.stopLogs = function(){
socket.emit('end');
}
棱角分明的工厂.js
angular.module('App').factory('socket', function ($rootScope) {
'use strict';
var socket = io.connect('http://localhost:3000');
return {
on: function (eventName, callback) {
socket.on(eventName, function () {
var args = arguments;
$rootScope.$apply(function () {
callback.apply(socket, args);
});
});
},
emit: function (eventName, data, callback) {
socket.emit(eventName, data, function () {
var args = arguments;
$rootScope.$apply(function () {
if (callback) {
callback.apply(socket, args);
}
});
})
}
};
});
服务器.js
var io = require('socket.io')(server);
io.sockets.on('connection',function(){
// Producer.startProducer();
ditconsumer.start(function(value){
io.emit('ditConsumer',value)
});
io.sockets.on('end', function() {
socket.disconnect();
console.log('it will disconnet connection');
});
});
这段代码是错误的:
io.sockets.on('end',function () {
console.log('this will disconnet socket connection');
io.sockets.disconnect();
});
您需要将该事件侦听器应用于一个特定套接字,然后需要断开一个特定套接字的连接。
您不显示服务器代码的一般上下文,但可以像这样完成:
io.on('connection', function(socket) {
socket.on('end', function() {
socket.disconnect();
});
});
您也可以直接让客户端断开连接,而不是要求服务器为您执行此操作。
相关文章:
- Node.js上的WebSocket,并在所有连接的客户端之间共享消息
- SignalR客户端启动连接时如何设置用户
- 服务器上的Meteor客户端断开连接事件
- 可以't连接客户端和服务器import.io
- 单个 Redis 客户端连接是否支持并发读写
- 多个 socket.io 客户端连接不起作用(谷歌浏览器,火狐浏览器)
- Node和Socket.io…阻止外部客户端连接
- 将两个 socket.io 客户端连接在一起(建立套接字到套接字,跨浏览器连接)
- 在客户端连接 HTML 中的两个字符串(无服务器)
- Node.JS 模拟 1000/+ 客户端连接的客户端应用
- 使用Socket.io将客户端连接到服务器
- Node.js:ssocket.io关闭客户端连接
- 无法从javascript客户端连接signalR集线器
- Strophe.js客户端连接到服务器,断开连接/超时
- Node js服务器safari客户端连接失败
- 套接字服务器未与JavaScript套接字客户端连接
- socket.io非活动客户端连接的服务器端超时
- Node.js HTTP和TCP客户端连接
- socket.io 复制每个新客户端连接的信息
- 当webSocket客户端连接时,节点httpServer关闭失败