gpt4 book ai didi

node.js - Socket.io,服务器不响应连接事件

转载 作者:太空宇宙 更新时间:2023-11-04 02:02:09 25 4
gpt4 key购买 nike

我在cloudways 有一个托管服务器。我正在尝试使用 socket.io。

client.php:

var socket = io('http://localhost:3000');
console.log(socket);

server.js:

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);

server.listen(3000);

io.on('connection', function(socket){
console.log('is connected');
});

访问该页面时,我在控制台的网络部分看到两个 200 OK 实例。浏览器中的控制台还打印套接字变量,其中包含“connected : true”。

但是,我在终端中没有看到“已连接”(来自 server.js),它只是空白。

该网站已在本地运行,但在尝试使其在 Cloudways 上运行时出现了这些问题。

有什么想法吗?

我尝试将“localhost”切换为域名和IP地址,并且尝试了不同的端口,但3000是唯一可以让我启动server.js而不会出现错误的端口。

enter image description here

编辑

Cloudways 已确认应使用端口 3000。

我尝试将 io() 中的 url 更改为:

var socket = io('http://my-cloudways-url:3000'); (net::ERR_EMPTY_RESPONSE)
var socket = io('http://www.my-domain.club:3000'); (net::ERR_EMPTY_RESPONSE)
var socket = io('http://ip-adr:3000'); (net::ERR_EMPTY_RESPONSE)

今天我得到了

var socket = io('http://localhost:3000'); (net::ERR_CONNECTION_REFUSED)

我也尝试过 io.connect(使用相同的地址/端口)。

最佳答案

也许是你的 php 索引...因为你正在设置本地主机和端口。

我不确定 Cloudway 是如何工作的。但是,当我们运行 server.js 时,一些云会提供一些用于访问我们的项目的 url...

在您的 cloudways 中尝试使用他们为您提供的官方 URL 访问该项目:

var socket = io.connect('url.from.cloudway');

例如,我使用的是cloud9,当我执行server.js时,返回一个url,例如:

Your code is running: https://demo-some-id.c9.io

当我使用socket.io时,我需要在索引中设置IO内的URL参数。

var socket = io('https://demo-some-id.c9.io');

您需要添加客户端socket.io.js version并添加带有路径的脚本标记,例如:

<script src="js/socket.io.js"></script>

观察:有些云,需要在<script>中设置url标签

<script src="https://demo-some-id.c9.io/socket.io/socket.io.js"></script>

关于node.js - Socket.io,服务器不响应连接事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45598619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com