node.js - 套接字 io:socket.use() 不验证传入的套接字连接
问题描述
我试图对命名空间上的每个传入套接字进行身份验证。我在文档中遇到了套接字级中间件。我从那里复制了代码示例,但它似乎对我不起作用。这是代码:
Server Side
io.of('/').on('connection', socket => {
socket.use(([event, ...args], next) => {
console.log('middleware here') // doesn't log anything
return next(new Error('unauthorized event')) // trying to abort the connection
})
socket.on('error', err => {
if (err && err.message === 'unauthorized event') {
console.log('here') // doesn't log anything
socket.disconnect()
}
})
console.log('disconnected:' socket.disconnected) // logs 'false', socket doesn't disconnect
})
另一方面client
,我尝试添加一个捕获所有侦听器
const socket = io('/')
socket.onAny((eventName, ...args) => {
console.log('here') //doesn't log anything
});
socket.on('connect', () => {
console.log(socket) //logs the socket
})
为什么我不能按照文档所说的方式让它工作?
解决方案
推荐阅读
- npm - Lerna with Yarn Workspaces - 如何构建完整的 node_modules
- c - 如何通过跳过标签之间的所有值来仅打印(C代码)XML标签?
- python - 在 python 烧瓶中传递 numpy 作为参数给出错误
- asp.net-web-api - 从另一个 Web api 调用 https api
- java - 如何在 Java 中使用本地环境变量测试 Azure 函数?
- javascript - Angular Highcharts hideNoData 不能动态工作
- azure - 如何将传入 blob 的结构从应用中心修改为 azure 中的应用程序洞察?
- powershell - Powershell脚本报价问题
- publish - Sitecore 9:当 Publishing.CheckSecurity 设置为 True 时,非管理员成员无法发布项目
- rally - 来自 chrome 扩展中 POST 请求的集会“未授权执行操作:密钥无效”的间歇性错误