[英]Socket.io not listening
我正在使用這個簡單的代碼
Client.html
Server.js
一切正常,直到我的客戶代碼的最后一步
socket.on('add', function(data) {
socket.broadcast.emit('AAA');
});
似乎套接字添加永遠不會到來,但是在我的服務器上
socket.on('Text', function(data) {
socket.emit('add', data);
});
而且我測試了套接字文本是否到來並且確實可以,我找不到問題,謝謝
socket.broadcast.emit
向所有連接到服務器的套接字發送消息,有關socket
除外。 因此,最有可能add
到服務器,但它廣播客戶端無法獲得的AAA
。 使用io.sockets.emit
發送到所有連接的套接字。 改變這個
socket.broadcast.emit('AAA');
至
io.sockets.emit('AAA');
我也忽略了您從客戶端而不是從服務器調用socket.broadcast.emit
。 由於客戶端上沒有廣播,因此在瀏覽器控制台上會顯示錯誤。
當前,您on('add')
客戶端的on('add')
代碼位於on('connect')
事件中,這是不正確的...
您需要將它帶走,這樣它就變成了:
socket.on('connect', function () {
$('#button').click(function() {
var addtext = $('#text').val();
socket.emit('Text', addtext);
});
});
socket.on('add', function(data) {
socket.emit('AAA');
});
編輯 :我也剛剛注意到您在客戶端代碼中有socket.broadcast.emit()
。 據我所知,沒有從客戶那里廣播的概念。 如果要廣播某些內容,則客戶端應將其發送到服務器,然后服務器將其廣播到其他客戶端。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.