You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu环境下Apache部署Node.js+Socket.IO聊天应用失败求助

Node.js + Socket.IO 聊天应用Ubuntu部署故障求助

本地VS Code环境可正常运行:启动Live Server后运行Node.js程序,聊天功能正常。但部署到Ubuntu服务器时,服务无任何提示且无法启动。已尝试配置HTTP代理、开放防火墙端口等操作,卡顿4天仍未解决。

服务端代码(index.js)

const io = require("socket.io")(8001);
const users = {};


io.on('connection', socket => {
    socket.on('new-user-joined', name => {
        users[socket.id] = name;
        socket.broadcast.emit('user-joined', name);
    });

    socket.on('send', message => {
        socket.broadcast.emit('receive', {message: message, name: users[socket.id]});
    });

    socket.on('disconnect', message => {
        socket.broadcast.emit('left', users[socket.id]);
        delete users[socket.id];
    })
});

客户端代码(client.js)

const socket = io('http://localhost:8001', { transports: ["websocket"] });

const form = document.getElementById('send-container');
const messageInput = document.getElementById('messageInp');
const messageContainer = document.querySelector('.container');
var audio = new Audio('blip.mp3');

const append = (message, position )=> {
    const messageElement = document.createElement('div');
    messageElement.innerText = message;
    messageElement.classList.add('message');
    messageElement.classList.add(position);
    messageContainer.append(messageElement);
    if (position == 'left') {
        audio.play();
    }
}
form.addEventListener('submit', (e) => {
    e.preventDefault();
    const message = messageInput.value;
    append(`You : ${message}`, 'right');
    socket.emit('send', message);
    messageInput.value = '';
})
const name = prompt("Enter your name .? ");
socket.emit('new-user-joined', name);

socket.on('user-joined', name => {
    append(`${name} joined the chat`, 'right')
});

socket.on('receive', data => {
    append(`${data.name}: ${data.message}`, "left")
});
socket.on('left', name => {
    append(`${name} left the chat`, "right")
});

页面代码(index.html)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Chat Application using Node Js and Socket IO</title>
    <link rel="stylesheet" href="index.css">
    <script defer src="http://localhost:8001/socket.io/socket.io.js"></script>
    <script defer src="clients/client.js"></script>
</head>
<body>
    <nav>
        <img src="logo.jpg" alt="#" id="logo">
        <h1>Free To Chat. Free To Leave</h1>
    </nav>
    <div class="container"></div>
    <div class="send">
        <form action="#" id="send-container">
            <input type="msgInp" id="messageInp">
            <button class="btn" type="submit"> Send </button>
        </form>
    </div>

</body>
</html>

操作截图

PuTTY操作截图

多次尝试配置HTTP代理、开放所有防火墙规则,问题仍未解决。

内容的提问来源于stack exchange,提问作者Harshith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 07:11:16