[英]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.