我是node.js的新手,我正在尝试在the tutorial on socket.io's website之后创建一个聊天应用。我已经在我的本地机器上工作,但现在我正在尝试将其上传到OpenShift服务器。
在我的应用中,我有一句话:
<script src="/socket.io/socket.io.js"></script>
在我的本地计算机上,它加载正常,但在我的服务器上,它返回404错误。我认为我的node_modules
可能一开始没有加载,但在进入服务器并检查后,我看到它们存在。
我package.json
中的依赖关系如下:
"dependencies": {
"express": "^3.4.8",
"socket.io": "^1.1.0"
}
关于从socket.io获取404错误,这里有很多不同的问题,我已经把他们中的许多人扔了,试图解决这个问题,没有任何进展。包括将script
src更改为:
http://app-domain.rhccloud.com
http://app-domain.rhccloud.com:8000
http://app-domain.rhccloud.com:8080
ws://app-domain.rhchloud.com:
大多数建议并非特定于OpenShift服务器,所以我想我会特别询问它。
如果需要,这是我的server.js
:
#!/bin/env node
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);
var port = process.env.OPENSHIFT_NODEJS_PORT || 8080;
var ip = process.env.OPENSHIFT_NODEJS_IP || "127.0.0.1";
app.get('/', function(req, res){
res.sendfile('index.html');
});
app.listen(port,ip,function() {
console.log('listening');
});
io.on('connection',function(socket) {
console.log('a user connected');
socket.on('disconnect',function() {
console.log('user disconnected');
});
socket.on('chat message',function(msg) {
io.emit('chat message',msg);
});
});
感谢您的帮助。
答案 0 :(得分:1)
应该是:
server.listen(port,ip,function() {
console.log('listening');
});
不是app.listen
。