DigitalOcean应用平台Websocket客户端无法连接服务器

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

我有一个带有 socket.io 的 Nuxt 3 应用程序在 DigitalOcean 应用程序平台上运行,客户端无法连接到 web 套接字服务器。

Web 套接字运行在与应用程序相同的端口

3000
上,具有:

  • nuxt.config.js
import startSocketServer from "./server/sockets"

export default defineNuxtConfig({
  ...
  hooks: {
    listen: (nuxtServer) => startSocketServer(nuxtServer)
  },
  ...
});
  • ./server/sockets/index.js
import {  Server } from "socket.io";

export default (nuxtServer) => {
  const io = new Server(nuxtServer)
  io.on("connection", (socket) => {
    console.log(`connection ${socket.id}`)
  });
};

在客户端我有:

const socketDomain = (isLocal) ? 'localhost:3000' : 'my.domain.com'

const socket = io(socketDomain, {
  transports: ['websocket'],

socket.on("connect", () => {
  console.log('connect')
});

socket.on("connect_error", (err) => {
  console.log(`connect_error due to ${err}`);
});

应用程序在本地使用

nuxi dev
nuxi build && node .output/server/index.mjs
完美运行,但是当我在 DigitalOcean 上部署时,我得到以下信息:

WebSocket connection to 'wss://my.domain.com/socket.io/?EIO=4&transport=websocket' failed: 
doOpen @ entry.3f5d167e.js:21
open @ entry.3f5d167e.js:20
open @ entry.3f5d167e.js:21
$i @ entry.3f5d167e.js:21
A1.exports @ entry.3f5d167e.js:21
open @ entry.3f5d167e.js:21
(anonymous) @ entry.3f5d167e.js:21
invoice.22658294.js:1 connect_error due to Error: websocket error

我也试过在不同的端口上使用网络套接字,但据我所知,DO 不支持它。

我也尝试过

transports: ['polling', 'websocket']
但我得到了
xhr poll error
.

可能是什么问题?

javascript socket.io digital-ocean nuxtjs3
© www.soinside.com 2019 - 2024. All rights reserved.