簡體   English   中英

Socket.io不監聽

[英]Socket.io not listening

我正在使用這個簡單的代碼

Client.html

http://pastebin.com/c1C2F9MQ

Server.js

http://pastebin.com/Cqjhjfwm

一切正常,直到我的客戶代碼的最后一步

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM