Heroku Node.js 应用程序上的 Socket.io 和多个 Dyno。 WebSocket 在连接建立之前关闭

编程代码JS

1个回答

写回答

伊桑未婚夫

2025-06-26 12:35

+ 关注

JS
JS

如何在 Heroku 上使用 Socket.io 和多个 Dyno 构建 Node.JS 应用程序

在构建具有实时通信功能的 Node.JS 应用程序时,Socket.io 是一个非常强大的工具。而在部署这样的应用程序时,Heroku 提供了一个灵活且可扩展的平台。本文将介绍如何在 Heroku 上使用 Socket.io 和多个 Dyno 构建一个具有实时通信功能的 Node.JS 应用程序。

步骤一:创建一个基本的 Node.JS 应用程序

首先,我们需要创建一个基本的 Node.JS 应用程序。我们可以使用 Express 框架来快速搭建一个简单的服务器。

在项目文件夹中,打开终端并运行以下命令:

mkdir socket-io-app

cd socket-io-app

npm init -y

npm install express socket.io

然后,创建一个名为 index.JS 的文件,并添加以下代码:

Javascript

const express = require('express');

const app = express();

const http = require('http').createServer(app);

const io = require('socket.io')(http);

app.get('/', (req, res) => {

res.sendFile(__dirname + '/index.html');

});

io.on('connection', (socket) => {

console.log('A user connected');

socket.on('disconnect', () => {

console.log('A user disconnected');

});

});

http.listen(process.env.PORT || 3000, () => {

console.log('Server is running');

});

在这段代码中,我们创建了一个基本的 Express 应用程序,并使用 Socket.io 初始化了一个 WebSocket 服务器。当用户连接到服务器时,将打印一条消息到控制台,并在用户断开连接时打印另一条消息。

创建一个名为 index.html 的文件,并添加以下代码:

html

<!DOCTYPE html>

<html>

<head>

<title>Socket.io App</title>

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

<script>

const socket = io();

socket.on('connect', () => {

console.log('Connected');

});

socket.on('disconnect', () => {

console.log('Disconnected');

});

</script>

</head>

<body>

<h1>Socket.io App</h1>

</body>

</html>

这是一个简单的 HTML 文件,其中包含了一个用于连接 WebSocket 服务器的 JavaScript 代码。

步骤二:将应用程序部署到 Heroku

接下来,我们需要将应用程序部署到 Heroku 上。

首先,确保你已经安装了 Heroku CLI,并登录到你的 Heroku 帐户。

然后,在终端中进入项目文件夹,并运行以下命令:

heroku create

git init

git add .

git commit -m "Initial commit"

heroku git:remote -a your-heroku-app-name

git push heroku master

这些命令将创建一个名为 your-heroku-app-name 的 Heroku 应用,并将本地代码推送到 Heroku。

步骤三:启用多个 Dyno

在默认情况下,Heroku 只会为我们的应用程序分配一个 Dyno。为了实现横向扩展并支持更多的并发连接,我们需要启用多个 Dyno。

在 Heroku 的控制台中,转到你的应用程序设置,并在 "Dyno Formation" 部分将 Dyno 数量增加到你需要的数量。

步骤四:测试应用程序

现在,我们可以测试我们的应用程序是否成功部署并支持多个 Dyno。

在终端中运行以下命令以打开应用程序:

heroku open

这将在浏览器中打开应用程序。在控制台中查看连接和断开连接的消息。你还可以在不同的浏览器窗口中打开应用程序,以模拟多个用户连接。

在本文中,我们学习了如何在 Heroku 上使用 Socket.io 和多个 Dyno 构建一个具有实时通信功能的 Node.JS 应用程序。我们创建了一个基本的服务器,使用 Socket.io 实现了实时通信,并部署到 Heroku 上。通过启用多个 Dyno,我们可以支持更多的并发连接。

正如我们所见,Heroku 提供了一个灵活且可扩展的平台,非常适合构建实时应用程序。 Socket.io 提供了强大的实时通信功能,使我们能够轻松地构建具有实时特性的应用程序。

希望本文对你有所帮助,并希望你能成功地在 Heroku 上构建出强大的实时应用程序!

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号