如何从url中删除socket.io EIO和其他参数

Kwa*_*dwo 9 socket.io

当我使用以下选项配置 socket-io 时:{ url: 'ws://localhost:8888', options: {path: '/chatws', transports: ['websocket'], reconnectionAttempts: '3'}}

我收到以下错误 WebSocket connection to 'ws://localhost:8888/chatws/?EIO=3&transport=websocket' failed: Error during WebSocket handshake: Unexpected response code: 501

如果我使用不添加任何参数的其他框架,那么它就可以工作。

如何从 URL 中删除 EIO 和所有查询参数?

小智 -4

事实并非如此。当您仅实现基于 Websocket 的传输时,您需要在两侧进行配置。默认情况下,socket.io 尝试使用长轮询建立连接。

服务器端实现:

const express = require('express')()
const server = require('http').createServer(express)
const io = require('socket.io')(server,{transports:['websocket']})
Run Code Online (Sandbox Code Playgroud)

客户端实现:

import io from 'socket.io-client'
const socket = io('http://localhost:8080',{transports: ['websocket']})
Run Code Online (Sandbox Code Playgroud)

这对我有用!

  • 这并没有回答以下问题:如何从 URL 中删除 EIO 和所有查询参数? (8认同)