我正在尝试在我的服务器上实现消息传递。这是Ubuntu 14.04 / Nginx
我已经安装了
1.nodejs
2.Redis
3.laravel
全部成功
当我运行命令
时node -v
它给我的节点版本
在我的控制器中,我的代码看起来像这样
public function sendMessage(){
$redis = LRedis::connection();
$redis->publish('message', 'Sending Message to Port');
return redirect('writemessage');
}
我的server.js代码就像这样
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var redis = require('redis');
server.listen(8890);
io.on('connection', function (socket) {
console.log("new client connected");
var redisClient = redis.createClient();
redisClient.subscribe('message');
redisClient.on("message", function(channel, message) {
console.log("mew message in queue "+ message + "channel");
socket.emit(channel, message);
});
socket.on('disconnect', function() {
redisClient.quit();
});
});
Redis服务器在默认的6379上运行
并且听取广播我的socket.php文件有以下代码
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="https://cdn.socket.io/socket.io-1.3.4.js"></script>
<script>
var socket = io.connect('http://localhost:8890');
socket.on('message', function (data) {
$( "#messages" ).append( "<p>"+data+"</p>" );
});
</script>
一切运行正常,但我在socket.php页面上看不到任何消息
任何想法如何调试
同样适用于Localhost
更新
所以我做了
redis-cli monitor
并尝试再次执行我的代码我可以看到redis正在广播这样的消息
1458128671.226586 [0 127.0.0.1:59112] "SELECT" "0"
1458128671.232152 [0 127.0.0.1:59112] "PUBLISH" "message" "Sending Message to Port"
但在节点方面,我没有收到它
请!!帮助我
答案 0 :(得分:0)