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