在 Cloud Run 上部署 websocket 服务器

问题描述 投票:0回答:1

我想在 Google Cloud Run 上使用 websockets 服务一个 webrtc 信令服务器。

我从网上拿了一个简单的服务器实现,上传到Cloud Run,指标说可以了

但是,每当我尝试通过以下方式连接到它时:

 uwsc ...run.app:9080/
 uwsc ws://...run.app
 uwsc wss://...run.app

我得到一个

Error connecting to websocket
。对于后两次连接尝试,GCP 上的日志表明网络服务器分别以状态 302 和 101 响应。对于 wss,日志还显示连接已建立,但随后立即关闭,代码为 1006。

服务器实现:

const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: process.env.PORT });

wss.on('connection', (ws) => {
  console.log(`Got a new connection`);
    ws.on('message', (message) => {
    console.log(`Got message ${message}.`);
    });
    ws.on('close', (code, reason) => {
        console.log(`Connection with peer closed `
            + `with reason ${code}: ${reason}`);
    });
    ws.on('error', (error) => {
        console.error(error);
    });
});

package.json:

{
  "name": "my-server",
  "version": "1.0.0",
  "private": true,
  "main": "server.js",
  "scripts": {
    "start": "node server.js"
  },
  "engines": {
    "node": ">=12.0.0"
  },
  "dependencies": {
    "ws": ">=8.0.0"
  }
}

我该如何调试?

google-cloud-platform networking websocket google-cloud-run
1个回答
0
投票

Soo,原来是测试websocket连接的工具:

uwsc
坏了/不支持加密流量。换成wscat后开始看到回复了

© www.soinside.com 2019 - 2024. All rights reserved.