我正在尝试nodejs和socket.io的简单示例。
它在本地(windows)上的工作
但不从事生产(CentOs 6.8)
我需要在生产方面做些什么改变?
我应该把app.js放在哪里?
(在本地我把app.js放在我的项目文件夹中 但在生产中我把它放在根文件夹上*我把它放在root上因为节点app.js无法在项目文件夹上运行)
浏览器出错(循环直到我关闭浏览器)
http://www.domain.com/socket.io/EIO=3&transport=polling&t=1470293560203-1 404(未找到) http://www.domain.com/socket.io/EIO=3&transport=polling&t=1470293560203-2 404(未找到)
app.js
const util = require('util');
const app = require('express')();
const http = require('http').Server(app);
const io = require('socket.io')(http);
const redis = require("redis");
const host = process.env.HOST || '0.0.0.0';
const port = process.env.PORT || 9090;
http.listen(port, host);
util.log('Listening at http://' + host + ':' + port);
io.on('connection', function (socket) {
// util.log("connect");
var redisClient = redis.createClient();
redisClient.subscribe('notification');
redisClient.on('message', function (channel, message) {
util.log("New message in queue " + message + "channel");
message = JSON.parse(message);
// util.log(message.data.data.id);
socket.emit(channel, message.data);
});
socket.on('disconnect', function () {
redisClient.quit();
});
});
的index.html
<div id="notifications"></div>
<script src="//cdn.socket.io/socket.io-1.3.5.js"></script>
<script>
var socket = io('http://localhost:9090');
socket.on('message', function (msg) {
console.log(msg);
var notif = document.getElementById('notifications');
var div = document.createElement('div');
div.innerHTML = msg.name + '('+ msg.email +') registered';
notif.appendChild(div);
});
</script>
答案 0 :(得分:0)
所以我解决了.. 这只是我的坏事。
首先我确保正确安装express,redis,socket.io。
然后在index.html http://localhost:9090必须更改为http://domain.com:9090。