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>
操作截图

多次尝试配置HTTP代理、开放所有防火墙规则,问题仍未解决。
内容的提问来源于stack exchange,提问作者Harshith
相关产品推荐
相关产品推荐

