最近,我一直在試驗Node.js和Socket.io。成功地,我已經能夠實現這些,但只能在本地主機上實現。現在我想在我的專用服務器上使用此功能。我從我自己的家中託管我的服務器,我無法讓節點和套接字在本地主機之外運行。這樣做的重要性是,我可以在測試我的網站時使用兩臺不同的計算機。這裏是我的代碼如下:試圖在專用服務器上實現Node.js和Socket.io
app.js:
var app = require('express')()
, server = require('http').createServer(app)
, io = require('socket.io').listen(server);
server.listen(80);
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
index.html:
<script src="http://localhost:8080/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:8080');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
這些是直接帶下socket.io網站樣本。現在它在localhost上工作,但不在外部。我無法在另一臺電腦上使用它。有人建議我改變
var socket = io.connect('http://localhost:8080');
到
var socket = io.connect('http://mydomain.com:8080');
,但使得瀏覽器會引發以下錯誤:
Uncaught ReferenceError: io is not defined mydomain.com/:3
GET http://mydomain.com/socket.io/socket.io.js mydomain.com/:1
即使我的主服務器計算機上。我使用OS X服務器與Mac mini btw。
任何意見,將不勝感激:
做了你的建議,現在我得到這個錯誤: 「GET http:// mydoma in.com/socket.io/1/?t=1376958569564 404(Not Found)「 實質上,我的根文件夾包含解決最初問題的/socket.io/socket.io.js。 –