【发布时间】:2021-02-28 02:39:38
【问题描述】:
我遵循了YouTube 上的教程,该教程展示了如何制作与套接字一起使用的 node.js 服务器。 这是最终的工作 server.js 代码。
var express = require('express');
var app = express()
var server = app.listen(3000)
app.use(express.static('public'))
console.log('My sockets server is running.');
var socket = require('socket.io')
var io = socket(server)
io.sockets.on('connection', newConnection)
function newConnection(socket) {
console.log('new connection: ', socket.id)
socket.on('send-msg', data => {
console.log('send-msg');
socket.broadcast.emit('send-msg', data)
})
}
当我将它托管在本地服务器 (http://localhost:3000/) 上时,此代码有效。现在我正在尝试使用 cPanel 使其在线,我正确设置了库(我认为)并且我使用了相同的代码,但它不起作用。我刚刚在显示屏中弹出Cannot GET /mychat。
我尝试进行一些更改:
...
const hostname = '[the ip address of my server]';
const port = 3000; // also tried port 22, same issue
var app = express()
var server = app.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
...
但我遇到了同样的问题。
当cPanel第一次创建server.js文件时,它做了这样的代码:
var http = require('http');
var server = http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
var message = 'It works!\n',
version = 'NodeJS ' + process.versions.node + '\n',
response = [message, version].join('\n');
res.end(response);
});
server.listen();
这是工作,但对我没有帮助。
这是网站的基本结构:
root
- package.json
- package-lock.json
- server.js
> node_modules (folder with all of the required files including express and socket)
> public
- index.html
- script.js
- styles.css
【问题讨论】:
标签: javascript node.js sockets websocket cpanel