如何使用 axios 从前端调用 uWebSockets http 路由?

问题描述

我在我的 nodejs 应用程序上使用 uWebSockets,我正在尝试向 wss 服务器发送一些 http 请求。 我可以通过从浏览器 URL 栏访问它们来查看 wss 服务器上 GET 路由的输出,但是当我尝试调用 PUT 、 POST 、 PATCH 等路由时,我没有得到任何输出(例如:没有响应,我认为未到达路线)。

我的 uWebSockets.js 配置是以下代码片段:

const uWS = require('uWebSockets.js');
const SOCKET_PORT = 3023;

const websockets = uWS.App()

/* I tried to put these routes before and after .ws(),still no response */
.put('/route1',(req,res) => {
     console.log('/route1');
})
.patch('/route2',res) => {
     console.log('/route2');
 })
.post('/route3',res) => {
     console.log('/route3');
})
.delete('/route4',res) => {
     console.log('/route4');
})

/* Tried with '','*','/*' but none of the attempts succeeed */
.ws('',{
     compression: uWS.SHARED_COMPRESSOR,idleTimeout: 30,maxBackpressure: 1024,maxPayloadLength: 512,open:ws=> ws.subscribe('all')
});


websockets.listen(SOCKET_PORT,(listenSocket) => {
    if (listenSocket) 
        console.log('Listening to port ' + SOCKET_PORT);
});

从前端,我尝试像这样发送请求:

    let header = { "Access-Control-Allow-Origin" : "*","Content-Type" : "application/json" };
    header.key= "test_key";
    await axios({
        method : "PUT",url : "wss://subdomain.domain.xyz/route1",data : { "val1" : "test","val2" : 5 },headers : header
    })
    .then(function(response){
        serverResponse = response.data;
    })
    .catch(function(err){
        serverResponse = err.response.data;
    });

我做的 websockets 请求错了吗?

我使用的是 18.04 uWebSockets.js 版本。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)