0
后才起作用我打开了两个选项卡中的我的页面。出于某种原因,只有在两个标签都提交了帖子后,客户端才会触发。socket.io客户端'on'仅在两个客户端发出'
// server
io.on('connection', function (socket) {
socket.on('newPost', function (post) {
io.emit('newPostReturn', post)
console.log(post)
})
})
// client (angular)
$rootScope.socket = io('http://172.28.28.201:3000');
$rootScope.socket.emit('newPost', post);
$rootScope.socket.on('newPost', function (post) {
$scope.$apply(function() {
$scope.posts.push(post);
});
});
UPDATE:
改为使用https://github.com/btford/angular-socket-io。同样的问题。另外我注意到,在第三次发射后,每个客户都会在另一次重新运行'开'。这就像它第一次触发'零'时间,然后每一个后续的调用都会触发它一个额外的时间。
.factory('socket', function (socketFactory) {
var ioSocket = io.connect('http://172.28.28.201:3000');
socket = socketFactory({
ioSocket: ioSocket
});
return socket;
});
更新2:我很笨!
我有我的'在'处理程序INSIDE提交帖子事件。将它移到外面,当然,一切都按预期工作。现在一切都变得完美。谢谢
您认为服务如何在两个标签之间进行通信?\ –
现在使用该模块。同样的问题。每一个'开'事件似乎都在发射累计次数。更新了我的问题 – azium
NEVERMIND!愚蠢的错误。在submitPost事件中有我的'on'处理程序。谢谢! – azium