提问者:小点点

socket.emit和socket.on未连接


我使用socket.io在现有的express应用程序中添加了一个聊天页面。我的服务器代码:

var io = socket(server);
io.on('connection', (socket) => {
    console.log('made socket connection', socket.id);
    // Handle chat event
    socket.on('chat', function(data){
        console.log("second");
        io.sockets.emit('chat', data);
    });

});

和我的客户端代码:

var socket = io.connect("http://localhost:3000/chat")

//Query elements
var message = document.getElementById('message'),
    btn     = document.getElementById('send'),
    output  = document.getElementById('output');

btn.addEventListener("click", function(){
    socket.emit('chat', {
        message: message.value,
    });
    console.log("First")
    message.value = "";
})     
socket.on('chat', function(data){
    console.log("final function")
    output.innerHTML += `<p>${data.message}</p>`;
});

socket.emit在客户端单击时激发,但服务器中的socket.on不运行。注意:console.log('made socket connection',socket.id);正常运行


共1个答案

匿名用户

您的客户端存在问题。您正在尝试连接命名空间“聊天”,删除聊天

var socket = io.connect("http://localhost:3000")