我有一个简单的网络应用程序,这是我的客户端脚本
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并从源代码
答案 0 :(得分:0)
经过大量的敲击键盘和摆弄代码几个小时并考虑所有事情后,我终于找到了" ping"和" pong"是保留的事件。它在emit cheat sheet部分的socket.io文档中列出。