socket.on不适用于我写的东西?救命?它只适用于断开连接。

时间:2015-03-21 04:09:22

标签: javascript node.js sockets socket.io

客户:

var socket = io.connect();
socket.on('some stuff', function(){
console.log("Please please work.");
});

服务器:

var io = require('socket.io').listen(app);
io.sockets.on('connection', function(socket){

console.log("Yay, tab opened!");



 socket.on('disconnect', function(){
     console.log("Aww, tab closed. ");
 });

 socket.on('some stuff', function(){
     console.log("Did it work? Idk.");
 });


});

App只是一个无关紧要的服务器。当我运行它时,唯一有效的部分是标签打开标签关闭部分。当我打开localhost然后去那里时,它会说" yay tab打开"在Windows控制台中。 (当我打开更多标签时,它会为我打开的每个标签显示该消息)。当我关闭标签时,它会显示我关闭的每个标签的aww标签已关闭消息。

但是当我尝试添加自己的功能时,它并不关心登录。我意识到我还没有对该功能做任何事情,但我稍后会需要它。所以我想知道它为什么不记录它。断开工作,但有些东西"不起作用。为什么不呢?

1 个答案:

答案 0 :(得分:0)

如果您希望客户端发回消息,则必须致电emit

// client
socket.emit('some stuff', {my:data});

// server
socket.on("connection", function() {
    ...

    socket.on("some stuff",function(data){
        console.log(data)
    );
});

当然,这个过程可以逆转,因此您可以使用自己的功能将数据从服务器发送到客户端