初始化示例:额外Headers

这仅在启用了轮询传输(默认情况下)时才有效。将WebSocket用作传输时,不会附加自定义头。这是因为WebSocket握手不支持自定义头文件。(见WebSocket协议RFC

客户端:

  1. const socket=io({
  2. transportOptions:{
  3. polling:{
  4. extraHeaders:{
  5. "x-clientId":"abc"
  6. }
  7. }
  8. }
  9. })

服务端

  1. const io= require('socket.io')()
  2. // 中间器件
  3. io.use((socket,next)=>{
  4. const clientId= socket.handshake.headers['x-clientId'];
  5. if (isValid(clientId)){
  6. return next()
  7. }
  8. return next(new Error("authentication error"))
  9. })