我有麻煩,甚至得到非常基本的socket.io樣品運行。例如他們的網站的歡迎頁面上的第一個例子:得到基本socket.io樣品工作
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
在服務器端和
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
在客戶端
。如果我保存在服務器端的host.js
文件,並在文件client.htm
客戶端,我跑npm host.js
,我得到
info - socket.io started
warn - error raised: Error: listen EADDRINUSE
這已經不是真的預期。那麼,對於client.htm
(或至少這就是我認爲我應該用它做 - 將其粘貼在client.htm文件),我只得到一個空白屏幕。不是很奇怪,因爲它首先包含一個不存在的文件/socket.io/socket.io.js
,但即使將其更改爲host.js
(我認爲它應該是)並不會改變我僅獲得空白屏幕的事實...
我無能爲力。
這有什麼關係?我嘗試了81,現在它只是在運行主機端時掛起,即它說'info - socket.io started',但它不會返回到命令行。 .htm頁面仍然是空白的,所以這似乎不能解決問題。 – user1111929 2012-02-25 21:09:50
它解決了EADDRINUSE錯誤,這是您的第一個問題。是的,它很重要。它也沒有掛起 - 服務器正在等待通信。所以,現在你已經解決了服務器端問題的一半。 – bryanmac 2012-02-25 21:24:21
對於客戶端的問題,你是否更新了htm頁面來連接到http:// localhost:81(不是:81)? – bryanmac 2012-02-25 21:24:54