为了账号安全,请及时绑定邮箱和手机立即绑定

Lance-gg游戏socket.io无法在数字海洋上加载资源

Lance-gg游戏socket.io无法在数字海洋上加载资源

缥缈止盈 2023-09-21 16:40:06
我的 lance-gg 游戏可以在本地主机上运行,但现在我尝试在数字海洋上部署,该网站似乎正在托管,但我无法连接 socket.io。客户端浏览器的错误是:[Error] Failed to load resource: The request timed out. (socket.io, line 0) http://144.126.196.39:3001/socket.io/?EIO=3&transport=polling&t=NOU8Lc-服务器代码是:import path from 'path';import express from 'express';import socketIO from 'socket.io';import { Lib, ServerEngine, GameEngine } from 'lance-gg';// define routes and socketconst server = express();server.get('/', (req, res) => { res.sendFile(path.join(__dirname, '../dist/index.html')); });server.use('/', express.static(path.join(__dirname, '../dist/')));let requestHandler = server.listen(3001);const io = socketIO(requestHandler);// Game Instancesconst gameEngine = new GameEngine({ traceLevel: Lib.Trace.TRACE_NONE });const serverEngine = new ServerEngine(io, gameEngine, { debug: {}, updateRate: 12 });serverEngine.start();客户端代码是:import { Renderer, GameEngine, ClientEngine } from 'lance-gg';const options = {    delayInputCount: 3,    scheduler: 'render-schedule',    syncOptions: {        sync: 'extrapolate',        remoteObjBending: 0.8,        bendingIncrements: 12    },    serverURL: 'http://144.126.196.39:3001'};// create a client engine and a game engineconst gameEngine = new GameEngine(options);const clientEngine = new ClientEngine(gameEngine, options, Renderer);document.addEventListener('DOMContentLoaded', (e) => clientEngine.start());我了解 digital ocean 中的 nodeJS 入门模板使用 Nginx,因此我确保使用端口 3001 重定向到我的应用程序。server {        listen 80 default_server;        listen [::]:80 default_server;        root /var/www/moon-game-2;        index index.html index.htm index.nginx-debian.html;        server_name hellonode;        location ^~ /assets/ {                gzip_static on;                expires 12h;                add_header Cache-Control public;        }我怎样才能让我的socket.io也连接到我的lance-gg服务器?
查看完整描述

1 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

没关系,解决了我在客户端代码中的问题。显然,在云环境中,我不需要像在本地主机上那样指定端口 3001。


// ...


import { USE_CLOUD_SERVER } from './constants';

const options = {

    // ...


    // The cloud server is set up with Nginx to redirect to the right port.

    serverURL: USE_CLOUD_SERVER ? 'http://144.126.196.39' : 'http://localhost:3001'

};


// ...


查看完整回答
反对 回复 2023-09-21
  • 1 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信