Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 设置socket.io的传输属性和路径_Javascript_Websocket_Socket.io - Fatal编程技术网

Javascript 设置socket.io的传输属性和路径

Javascript 设置socket.io的传输属性和路径,javascript,websocket,socket.io,Javascript,Websocket,Socket.io,我正在尝试通过socket.io库创建与后端的套接字连接。 问题是-我需要关闭长轮询选项并设置自定义路径。但我不能同时设置这两个选项,因为始终只能使用一个选项。 因此,如果我尝试这种方式,我设置的是路径,而不是传输: this.socket = io( 'wss://some-url.com', { path: '/v1/url/to/websockets' }, { transports: [ 'websocket' ] } ); 库正在尝试建立长轮询连接,该连接将被服务器拒绝(

我正在尝试通过socket.io库创建与后端的套接字连接。
问题是-我需要关闭长轮询选项并设置自定义路径。但我不能同时设置这两个选项,因为始终只能使用一个选项。
因此,如果我尝试这种方式,我设置的是
路径
,而不是
传输

this.socket = io(
  'wss://some-url.com',
  { path: '/v1/url/to/websockets' },
  { transports: [ 'websocket' ] }
);
库正在尝试建立长轮询连接,该连接将被服务器拒绝(我无权访问),但路径将是正确的。
但如果我试图更改顺序并首先设置
传输
属性,库将省略
路径
属性,前端将向
发送请求wss://some-url.com/socket.io/?EIO=3&transport=websocket

url,这是不正确的。
我知道这是一些冲突,因为
transport
property更改了URL(它将自身设置为查询参数),但我不明白的是,我如何设置路径和transports属性,因为我非常需要它们。
在官方文档和此处未找到解决方案。

有什么想法吗?

你的语法错误,语法正确

 this.socket = io(
                 'wss://some-url.com', 
                 { 
                    path :'/v1/url/to/websockets', 
                    transports: ['websocket']
                 });

i、 e.两者应该在同一个对象中

在这种情况下,调用this.socket.connect();不会使连接只是检查,就像我说的,编码这个。socket.connect()不做任何移动,我没有看到“握手”请求,我没有得到“onconnect”事件(当然),等等。通过上面的代码,客户端连接到您的套接字服务器。为什么在那之后还要调用这个.socket.connect()??将握手视为使用Iwebsocket传输,只有一个http请求,响应为101。在此之后,在我结束的时候,连接事件被正确调用。据我所知,我可以手动调用.connect()方法。但没关系,我在控制台上看不到“GET”套接字请求(我的意思是握手)。。。等等,看起来现在可以用了。有趣。所以上面的答案是正确的,我只需要找出区别,为什么它以前不起作用。。。