Socket.io NodeJS 客户端
Socket.io client in NodeJS
我想用 nodejs 服务和主服务构建一个微服务基础设施,这些服务之间的通信应该通过 socket.io 进行,我已经设置了我的 socket.io 服务器,但是他们的浏览器客户端(socket.io-client) 在 nodejs 中不起作用(我猜它使用了一些仅限浏览器的 API)。有没有办法创建 nodejs socket.io(不是 WEBSOCKETS)客户端?
编辑
我的客户端代码:
import { io } from "socket.io-client";
const socket = io("127.0.0.1:3000");
socket.on("connect", () => {
console.log(socket.id);
});
socket.on("disconnect", () => {
console.log(socket.id);
});
我的服务器端代码:
import { Server } from "socket.io";
const io = new Server();
io.on("connection", (socket) => {
console.log(socket)
});
io.listen(3000);
都是用typescript写的,包版本是:
socket.io: ^4.4.0
socket.io-客户端:^4.4.0
问题是,我的控制台中没有任何日志,所以我认为客户端有问题,因为 socket.io 没有在客户端兼容性图中提及节点。
问题是你必须在这里传递一个有效的 URL:
const socket = io("127.0.0.1:3000");
我不知道为什么 socket.io 没有给你一个错误,但如果你把它改成:
const socket = io("http://127.0.0.1:3000");
然后,它会起作用。
如果您在环境中设置 DEBUG=socket.io-client
,它不会向您显示错误,但会显示它正在尝试连接到:
undefined//127.0.0.1:3000
我想这会给你一个线索。
如果您在您的环境中设置 DEBUG=*
,您将获得更多的调试信息(太多以至于有点难以整理)。
设置Logging and Debugging Socket.io获取更多信息。
我想用 nodejs 服务和主服务构建一个微服务基础设施,这些服务之间的通信应该通过 socket.io 进行,我已经设置了我的 socket.io 服务器,但是他们的浏览器客户端(socket.io-client) 在 nodejs 中不起作用(我猜它使用了一些仅限浏览器的 API)。有没有办法创建 nodejs socket.io(不是 WEBSOCKETS)客户端?
编辑
我的客户端代码:
import { io } from "socket.io-client";
const socket = io("127.0.0.1:3000");
socket.on("connect", () => {
console.log(socket.id);
});
socket.on("disconnect", () => {
console.log(socket.id);
});
我的服务器端代码:
import { Server } from "socket.io";
const io = new Server();
io.on("connection", (socket) => {
console.log(socket)
});
io.listen(3000);
都是用typescript写的,包版本是:
socket.io: ^4.4.0
socket.io-客户端:^4.4.0
问题是,我的控制台中没有任何日志,所以我认为客户端有问题,因为 socket.io 没有在客户端兼容性图中提及节点。
问题是你必须在这里传递一个有效的 URL:
const socket = io("127.0.0.1:3000");
我不知道为什么 socket.io 没有给你一个错误,但如果你把它改成:
const socket = io("http://127.0.0.1:3000");
然后,它会起作用。
如果您在环境中设置 DEBUG=socket.io-client
,它不会向您显示错误,但会显示它正在尝试连接到:
undefined//127.0.0.1:3000
我想这会给你一个线索。
如果您在您的环境中设置 DEBUG=*
,您将获得更多的调试信息(太多以至于有点难以整理)。
设置Logging and Debugging Socket.io获取更多信息。