0
私は、サーバーからクライアントに送信され、サーバーとログオンクライアントから一貫して来ているログメッセージを持って、今私はいくつかのコントロールを与えるためにログを停止し、再生する追加の機能を持っているので、接続を切断してsocket.io
の接続を解除してからもう一度接続を開始しますsocket.io
接続を切断するために停止していますが、サーバーにメッセージを送信できませんでした。 main.htmlをsocket.ioを切断してクライアントから再接続する方法は?
<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');
});
});
サーバ側からの理解を深めるために質問を更新しましたが、 'stopLogs()'メソッドをクリックすると、クライアント側からのメッセージも出力されません。 – hussain
@hussain - あなたのサーバーコードはまだ間違っていて修正が必要です。 'io.sockets.on(...)'は間違っていて、 'socket.on(...)'でなければなりません。私は角度がわからないので、実際にそこに問題がある場合は、他の人のためにそれを残しておきます。 – jfriend00
'socket.on( 'end')'が例外を投げていますsocketが定義されていません 'io.on( 'end')'と同じ結果が出ました。 – hussain