【发布时间】:2016-11-19 03:46:19
【问题描述】:
我有从服务器发送到客户端的日志消息,并且这些消息始终来自服务器并记录到客户端,现在我有额外的功能来停止和播放日志以向用户提供一些控制,所以我正在考虑停止断开socket.io 连接并再次开始播放socket.io 连接,首先我尝试停止断开连接但我无法向服务器发送消息,知道下面的代码有什么问题或任何更好的解决方案来完成这些任务?
main.html
<button type="button" class="btn btn-success" ng-click="stopLogs()">stop</button>
ctrl.js
$scope.stopLogs = function(){
socket.emit('end');
}
angularSOcketFactory.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);
}
});
})
}
};
});
server.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');
});
});
【问题讨论】:
标签: javascript angularjs node.js socket.io