后台给的访问地址类似 https://ai.us-east-1.fcapp.run。[阿里云函数计算]

后台给的访问地址类似 https://ai.us-east-1.fcapp.run。我的代码类似如下const express = require(‘express’) const { createProxyMiddleware } = require(‘http-proxy-middleware’)const app = express() const port = 9000const wss = createProxyMiddleware({ target: ‘wss://abc.com’, changeOrigin: true,// needed for virtual hosted sites ws: true, // proxy websockets onProxyReq: (proxyReq, req, socket, options) => { proxyReq.headers[‘Sec-WebSocket-Key’] = req.headers[‘Sec-WebSocket-Key’]; proxyReq.headers[‘Sec-WebSocket-Version’] = req.headers[‘Sec-WebSocket-Version’]; }, onProxyRes: (proxyRes, req, socket, options) => { proxyRes.headers[‘Access-Control-Allow-Origin’] = ‘*’; } });我现在用 https://ai.us-east-1.fcapp.run 来访问wss://abc.com 是不可以的,不知道如何设置

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
1 条回复 A 作者 M 管理员
  1. 这个要看日志了,不可以的原因可能是被墙了,也可能是代码问题,也可能是配置的问题。 用 ws 试试,不用wss

    此答案来自钉钉群“阿里函数计算官网客户”

  2. 阿里云函数的访问地址是基于HTTP协议的,无法直接访问WebSocket协议的服务。你可以尝试使用第三方的WSS代理服务,将WebSocket请求转发到阿里云函数的HTTP触发器上,实现WebSocket代理。

    具体的实现方法如下:

    1. 在阿里云函数中创建HTTP触发器,并记录下HTTP触发器的访问地址,例如:https://ai.us-east-1.fcapp.run。

    2. 使用第三方WSS代理服务,将WebSocket请求转发到HTTP触发器的访问地址上。例如,你可以使用nginx等代理服务器来实现WebSocket代理。

    3. 在阿里云函数中,使用http-proxy-middleware等模块来实现HTTP代理,将HTTP请求转发到目标服务上。具体的代码实现可以参考你提供的代码。

    需要注意的是,在使用第三方WSS代理服务时,需要设置代理服务器的转发规则,将WebSocket请求转发到阿里云函数的HTTP触发器上。同时,阿里云函数的HTTP触发器也需要支持WebSocket协议的连接。