簡體   English   中英

socket.on()不接收數據

[英]socket.on() not receiving data

我在使用socket.on上班時遇到問題

$('#showmsg').click(function() {
var socket = io.connect('http://localhost:3000');
var msgText = $('#msgtext');
socket.emit('show msg', msgText.val());
});

該代碼有效,如通過使用所示

io.sockets.on('connection', function(socket) {
    socket.on('show msg', function(data) {
        console.log(data);
    });
});

在server.js中,是我的主應用程序文件,但是在另一個文件中,當我使用代碼時

    $(document).ready(function (){
        var socket = io.connect();
        socket.on('show msg', function(data) {
            $('#container').hide();
        });
    });

什么都沒發生。 有誰知道我如何使此代碼起作用?

在客戶端中進行連接時,必須等待connect消息,然后才能使用.emit()發送數據。 現在,您正在嘗試在連接完成之前發送數據,從而導致數據丟失。

請參閱此處的客戶端示例: http : //socket.io/docs/#sending-and-getting-data-(致謝)

我認為正在發生的事情是在document.ready函數中,您嘗試調用io.connect(),但是隨后在套接字連接之前調用show消息。 嘗試這樣做

socket.on('connect', function (){
   socket.on('show msg', function(data) {
        $('#container').hide();
    });
});

什么也沒發生,因為您什么都不發出。

$(document).ready(function (){
  var socket = io.connect('http://localhost:3000');
  socket.on('show msg', function(data) {
    $('#container').hide();
  });
  socket.emit('show msg', 'right now I am emitting data');
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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