我想将值传递给回调,所以我可以使用另一个函数,所以下面的消费者一直在接收正在工作的消息,现在我想在消费者每次收到消息时将这些消息传递给io
所以我可以emit
到客户端。所以我不能在io.connection
内调用消费者函数如何使用回调从消费者那里获得价值,并确保它发出正确的套接字?
app.js
consumer.on('message', function(message, callback) {
logger.log('info', message.value);
callback(message.value);
});
io.on('connection', function(socket, callback) {
callback(message.value);
socket.emit('ditConsumer', message.value);
});
clientSocketFactory.js
angular.module('loggingApp').factory('socket', function ($rootScope) {
'use strict';
var server = 'http://localhost:3000';
var socket = io.connect(server,{'forceNew': true });
function socket_reconnect() {
socket.connect();
};
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);
}
});
})
},
disconnect: function () {
socket.disconnect();
},
reconnect: function () {
socket_reconnect();
},
};
});
ctrl.js
$scope.event = [];
socket.on('ditConsumer',function (data) {
$scope.event.push(data);
});