无法在 ubuntu 中使用 apache 托管节点 js 和套接字 io 聊天应用程序

Unable to host node js and socket io chat application using apache in ubuntu

提问人:Harshith Ec 080 提问时间:9/12/2023 更新时间:9/12/2023 访问量:16

问:

我想托管我的应用程序。所以我做了我必须做的一切,但我的服务器仍然没有运行。在 vs code 中,它完美运行,首先从实时服务器运行,然后运行节点 js 应用程序,然后你就可以完美运行一个聊天应用程序。当我在 ubuntu 中运行时,它什么也没说,也没有运行。我被困了 4 天,但还没有找到解决方案。

索引 .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];
    })
});

客户端:.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")
});

索引:.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并启用了所有防火墙,但没有一个有效。

node.js Apache Ubuntu socket.io web-hosting

评论

0赞 deekep 9/12/2023
您是否在生产中使用“localhost:8001”?您必须设置您网站的域/IP。
0赞 Community 9/12/2023
请澄清您的具体问题或提供其他详细信息,以准确说明您的需求。正如目前所写的那样,很难确切地说出你在问什么。
0赞 Harshith Ec 080 9/12/2023
我想在浏览器上运行我的应用程序。当我运行节点索引js时,它应该显示在浏览器上,但它没有运行
0赞 Harshith Ec 080 9/12/2023
是的,我做了-deekep

答: 暂无答案