Javascript 不为我写的东西工作?帮助它只适用于断开连接。

Javascript 不为我写的东西工作?帮助它只适用于断开连接。,javascript,node.js,sockets,socket.io,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(

客户:

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.");
 });


});
应用程序只是一个无关的服务器。当我运行它时,唯一有效的部分是tab open tab closed部分。当我打开localhost并继续操作时,它会显示在windows控制台中打开了yay选项卡。当我打开更多选项卡时,它会显示我打开的每个选项卡的消息。当我关闭选项卡时,它会为我关闭的每个选项卡显示aww tab closed消息


但是当我尝试添加自己的函数时,它不介意登录。我意识到我还没有用这个函数做任何事情,但我以后需要它。所以我想知道为什么它不记录它。断开连接起作用,但有些东西不起作用。为什么不呢?

如果您想让客户端发回消息,您必须调用emit:


当然,这个过程可以颠倒,这样您就可以使用自己的功能将数据从服务器发送到客户端

可能的重复:谢谢!另外,如果我试图将该数据传递到该socket.on函数中的另一个函数,我该如何做?我正在尝试执行db.serializefunctiondata//执行一些db操作,然后执行{console.logdata;},但它说数据未定义。即使在我将其传递到该函数之前,它也可以很好地记录数据。在数据库中,它将自身存储为null。我不熟悉db.serialize函数。但请注意,所有变量都称为数据。也许有名字冲突?
// client
socket.emit('some stuff', {my:data});

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

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