2015-05-05 72 views
2

我試圖在Laravel 5應用程序中獲得一些實時通知。用宅基地在流浪箱上局部建造。Laravel 5 - Homestead - Redis - NodeJs - Socket IO不能很好地播放

我無法弄清楚下面的設置是什麼問題。

我server.js如下:...

var app = require('express')(); 
var server = require('http').Server(app); 
var io = require('socket.io')(server); 
var redis = require('redis'); 

server.listen(3000); 

io.on('connection', function (socket) { 

    var redisClient = redis.createClient(); 
    redisClient.subscribe('message'); 

    redisClient.on("message", function(channel, message) { 
    socket.emit(channel, message); 
    }); 

    socket.on('disconnect', function() { 
    redisClient.quit(); 
    }); 

}); 

然後,我的客戶端代碼訂閱:

<script src="https://cdn.socket.io/socket.io-1.3.4.js"></script> 

<script> 
var socket = io.connect('http://127.0.0.1:3000'); 
socket.on('message', function (data) { 
    alert(data); 
}); 
</script> 

螢火蟲保持返回:

GET http://127.0.0.1/socket.io/?EIO=3&transport=polling&t=1430825965165-1 中止

Google Chrome工具讓我看到以下內容:

http://127.0.0.1:3000/socket.io/?EIO=3&transport=polling&t=1430826106108-3網:: ERR_CONNECTION_REFUSED

相當新的和的NodeJS非常困惑。現在花了4個小時試圖解決問題。

任何指針?

非常感謝,院長。

+0

您是否找到解決方案? – Pedram

回答

0

首先確保您已經安裝了您的server.js文件的所有依存關係,如果你與家園的工作,在你的項目根目錄執行以下命令:

故宮安裝快車Redis的socket.io --save

等待,直到安裝完成,並啓動服務器:

節點server.js

0

使用項目的虛擬主機名與套接字連接。 它適合我。 在你的客戶代碼中編輯這個。 var socket = io.connect('http://' + location.host + ':3000');

相關問題