Node.js中wss.clients显示undefined的问题求助
问题分析与解决
你的代码里wss.clients输出undefined的原因很明确:connection事件的回调参数名和全局的WebSocket服务器实例wss重名了。
在wss.on('connection', wss => { ... })这段代码中,回调函数的第一个参数代表的是单个客户端的WebSocket连接对象,但你把它命名成了wss,这就覆盖了外部定义的服务器实例变量。此时回调内部的wss是客户端连接,它并没有clients属性,所以打印结果自然是undefined。
修正后的代码
const https = require('https'); const WebSocket = require('ws'); const wss = new WebSocket.Server({port: 3000}); ...... wss.on('connection', ws => { // 将参数名改为ws,避免覆盖服务器实例 console.log("Connected."); console.log(wss.clients); // 现在可正常访问服务器的客户端集合 }); ......
补充说明
wss.clients是一个Set集合,包含当前所有连接到服务器的客户端对象,若要查看连接数量可使用wss.clients.size。- 如需遍历所有客户端,可通过
wss.clients.forEach(client => { ... })操作每个连接。
内容的提问来源于stack exchange,提问作者YOWOT
相关产品推荐
相关产品推荐

