socket.io - 事件无法正常启动

时间:2018-05-20 12:13:03

标签: node.js socket.io

我有一个简单的网络应用程序,这是我的客户端脚本

var socket = io.connect();
socket.on("debug",(msg)=>console.log(msg));
socket.on("pong",()=>console.log("PONG"));

服务器端代码:

const express = require("express");
const path = require("path");

var app = express();
var server = require('http').Server(app);
var socket = require('socket.io')(server);

app.use(express.static(path.join(__dirname,"../UI")));

socket.on("connection",(s)=>{
    s.on("ping",()=>{
        console.log("New ping req");
        s.emit("pong");
    });
});

server.listen(3000);

现在这是过去一小时困扰我的事情。如果我进入我的chrome控制台并键入socket.emit("ping");我没有立即得到响应,它每20秒左右打印出“PONG”,并且在服务器上没有打印,即使我放了console.log在我的ping事件中。我确保检查文件已保存到磁盘,检查chrome中的源,甚至重新启动并切换到Firefox,它也是一样的。我过去很多次都使用过socket.io,我不清楚为什么会发生这种情况。完全迷失了。顺便说一句,我正在运行Arch Linux并从源代码

编译node.js v10.1.0

1 个答案:

答案 0 :(得分:0)

经过大量的敲击键盘和摆弄代码几个小时并考虑所有事情后,我终于找到了" ping"和" pong"是保留的事件。它在emit cheat sheet部分的socket.io文档中列出。