安装 socket.io 时 SocketIO.Server 对象消失
Posted
技术标签:
【中文标题】安装 socket.io 时 SocketIO.Server 对象消失【英文标题】:SocketIO.Server Object disappears when installing socket.io 【发布时间】:2021-05-17 22:26:30 【问题描述】:我想在 nodejs 中创建一个 Socket.io 服务器,但是,通过 const io = require('socket.io')();
创建的 io
对象只返回 const io: any
没有任何属性或方法,我似乎无法连接到服务器。奇怪的是,当我通过 npm remove socket.io
删除节点模块时,io
对象返回 const io: SocketIO.Server
及其所有属性和方法。但是当我尝试运行它时,我收到一条错误消息,提示缺少模块,这是预期的,因为未安装该模块。
我只是不明白发生了什么。
感谢任何帮助:D
const io = require('socket.io')(path:'/socket');
io.listen(3400);
io.on('connection', socket =>
console.log("Connection");
);
【问题讨论】:
【参考方案1】:我试图重现您的问题,但没有成功。在代码末尾添加console.log(io)
时,对象输出看起来与预期一样。因此,您的服务器应该正在运行。
我的输出:
Server
_events: [Object: null prototype] ,
_eventsCount: 0,
_maxListeners: undefined,
_nsps: Map
'/' => Namespace
_events: [Object: null prototype],
_eventsCount: 1,
_maxListeners: undefined,
sockets: Map ,
_fns: [],
...
您可能会混淆代码编辑器对变量实际值的不准确类型检测。 VSCode 也为我检测到 const io: any
,即使套接字服务器工作正常。
【讨论】:
感谢您非常详细的回答。我想我的问题是客户端。尽管教程中的每个人都能够看到它们并使用自动完成功能,但我仍然看不到 io 对象的任何方法和属性。也许我的问题更多的是关于 VSCodes IntelliSense。 你的other question这个问题现在解决了吗?以上是关于安装 socket.io 时 SocketIO.Server 对象消失的主要内容,如果未能解决你的问题,请参考以下文章
在 Angular 2 应用程序中导入 socket.io-client 时出错 [重复]