【发布时间】:2022-01-06 09:10:34
【问题描述】:
我想用 nodejs 服务和主服务构建一个微服务基础设施,这些服务之间的通信应该通过 socket.io 发生,我已经设置了我的 socket.io 服务器,但是他们的浏览器客户端(socket.io-client ) 在 nodejs 中不起作用(我猜它使用一些仅浏览器的 API)。有没有办法创建 nodejs socket.io (NOT 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);
两者都是用打字稿写的,包版本是:
socket.io: ^4.4.0
socket.io-client: ^4.4.0
问题是,我的控制台中没有任何日志,所以我认为客户端有问题,因为 socket.io 没有在客户端兼容性图中提到节点。
【问题讨论】:
-
有一个socket.io-client library 专门用于nodejs。我用过。它有效。
-
如果该库中的某些内容不适合您,我建议您发布您的代码并解释什么不工作。可能是您的代码或环境有问题,而不是库。
-
我使用了他们的服务器和客户端官方文档中的打字稿代码。 socket.io/docs/v4/client-initialization 和 socket.io/docs/v4/server-initialization
-
我重复一遍。如果它对您不起作用,请发布您的代码并解释什么不起作用。这不是图书馆的问题。这是您的代码或环境的问题。如果没有看到您的代码,我们将无法提供帮助。我不确定您希望我们如何在不查看您的代码的情况下“猜测”您的问题。
-
嘿 :) 很抱歉没有提供足够的信息,希望我的编辑解决了这个问题。
标签: node.js typescript websocket socket.io