描述
示例: register_socket_route(namespace, name, args)
功能: 注册 Web Socket 接口
参数
namespace
(String)(Required)
命名空间
name
(String)(Required)
Socket 名称
args
(Object)(Required)
callback
(Function)(Required)
回调方法,该方法接收两个参数(ws,req)
- ws
(Object)
express-ws的请求对象
- req
(Object)
node express的请求对象
permission_callback
(Function)(Optional)
权限回调方法,该方法接收1个参数(power)。需要鉴权时,可使用此方法鉴定权限级别,不带此参数则任何人都可请求。
返回
(Void)
无
示例
register_socket_route('panda/test','sample',{
callback(ws,req) {
console.log('Connection Opened!');
ws.on('message',data => {
ws.send('received:'+data)
})
ws.on('close', () => {
console.log('disconnected');
});
},
permission_callback: (power) => power >= 10,
});
鉴权
由于WebSocket不允许附带自定义Header,因此接口的授权鉴定是在请求头(Header)中使用了自带的sec-websocket-protocol
参数实现的。若有permission_callback方法,在服务器收到该参数后,将判断用户的权限,等级合格的用户才能访问该接口。
对于无权限的用户,将关闭Socket链接,返回错误码4010,并带有“Permission declined!”字样的关闭原因。