如何解决公共服务器上的Node.js
我正在学习将公共服务器上的node.js用作从服务器到客户端(https://github.com/iamshaunjp/websockets-playlist/tree/lesson-5)的一条开放线路。 我已经完成了YouTube教程来创建聊天服务器/客户端。这可以在我自己的机器上工作。
服务器代码(index.js):
var express = require('express');
var socket = require('socket.io');
// App setup
var app = express();
var server = app.listen(4000,function () {
console.log('listening to request on port 4000');
})
// Static files
app.use(express.static('public'));
// Socket setup
var io = socket(server);
io.on('connection',function (socket) {
console.log('made socket connection',socket.id);
socket.on('chat',function (data) {
io.sockets.emit('chat',data);
});
socket.on('typing',function (data) {
socket.broadcast.emit('typing',data);
});
});
浏览器代码(/public/chat.js):
// Make connection
var socket = io.connect('http://localhost:4000');
// Query DOM
var message = document.getElementById('message');
var handle = document.getElementById('handle');
var btn = document.getElementById('send');
var output = document.getElementById('output');
var feedback = document.getElementById('feedback');
// Emit events
btn.addEventListener('click',function () {
socket.emit('chat',{
message: message.value,handle: handle.value
});
});
message.addEventListener('keypress',function () {
socket.emit('typing',handle.value);
});
// Listen for events
socket.on('chat',function (data) {
feedback.innerHTML = '';
output.innerHTML += '<p><strong>' + data.handle + ':</strong>' + data.message + '</p>';
});
socket.on('typing',function (data) {
feedback.innerHTML = '<p><em>' + data + ' is typing a message...</em></p>';
});
浏览器代码(public / index.html):
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Websockets 101</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.js"></script>
<link href="/styles.css" rel="stylesheet" />
</head>
<body>
<div id="mario-chat">
<div id="chat-window">
<div id="output"></div>
<div id="feedback"></div>
</div>
<input id="handle" type="text" placeholder="Name" />
<input id="message" type="text" placeholder="Message" />
<button id="send">Send</button>
</div>
<script src="/chat.js"></script>
</body>
</html>
当我访问http:// localhost:4000时,我看到聊天屏幕,并且可以聊天(到多个浏览器窗口)。
现在我想将我的代码上传到ubuntu开发服务器,但无法正常工作。我已经在服务器上安装了Node.js,当我键入node -v时,我会得到版本号,因此安装正确。
下一步是什么?如果我将代码上传到开发服务器(http:// devserver01 / websocket /),则由于我没有index.html,因此不会显示我的代码。
在本地主机上,我使用了以下代码(package.json):
{
"name": "websocket","version": "1.0.0","description": "websocket","main": "index.js","scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},"author": "","license": "ISC","dependencies": {
"express": "^4.17.1","socket.io": "^2.3.0"
},}
如果我转到http:// devserver01 / websocket /,它不会(当然),但http:// devserver01:4000也不会(当然,因为它不知道它必须转到js文件)。
但是我找不到有关如何在远程Linux机器上部署它的任何信息。
谢谢您的帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。