Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 插座io正在连接,但未发射_Node.js_Redis_Socket.io - Fatal编程技术网

Node.js 插座io正在连接,但未发射

Node.js 插座io正在连接,但未发射,node.js,redis,socket.io,Node.js,Redis,Socket.io,我有socket io redis和express pubsub正在运行,在我的本地主机上工作正常我正在使用laravel事件发布到redis然后socket io应该会发出消息,它在本地主机上工作正常,但在我的生产服务器(ec2 vm)上,它只能连接,我可以看到控制台消息“已连接”,但它不会发出任何事件,即使消息已发布到redis这里是我的客户端和服务器 //client <script type="text/javascript">// <![CDATA[

我有socket io redis和express pubsub正在运行,在我的本地主机上工作正常我正在使用laravel事件发布到redis然后socket io应该会发出消息,它在本地主机上工作正常,但在我的生产服务器(ec2 vm)上,它只能连接,我可以看到控制台消息“已连接”,但它不会发出任何事件,即使消息已发布到redis这里是我的客户端和服务器

//client

<script type="text/javascript">// <![CDATA[
            var socket = io.connect('http://127.0.0.1:3000/');

            socket.on('connect', function(data){
                //socket.emit('subscribe', {channel:'score.update'});
                console.log('connected');
            });

            socket.on('notification.update', function (data) {
                //Do something with data
                console.log('Notification Caught: ', data);

            });




// ]]></script>




//server
var express =   require('express'),
    http =      require('http'),
    server =    http.createServer(app);

var app = express();

const redis =   require('redis');
const io =      require('socket.io');
const client =  redis.createClient();

server.listen(3000, 'localhost');

io.listen(server).on('connection', function(client) {
    const redisClient = redis.createClient()
    redisClient.subscribe('notification.update');

 });
    redisClient.on("message", function(channel, message) {
        //Channel is e.g 'score.update'
        client.emit(channel, message);

    });

    client.on('disconnect', function() {
        redisClient.quit();
    });
});
//客户端
// 
//服务器
var express=require('express'),
http=require('http'),
server=http.createServer(app);
var-app=express();
const redis=require('redis');
常量io=require('socket.io');
const client=redis.createClient();
listen(3000,“localhost”);
io.listen(服务器).on('connection',函数(客户端){
const redisClient=redis.createClient()
redisClient.subscribe('notification.update');
});
redisClient.on(“消息”,函数(通道,消息){
//频道为“分数更新”
client.emit(通道、消息);
});
client.on('disconnect',function()){
redisClient.quit();
});
});

您需要更改服务器的侦听:

改变这些:

var express =   require('express'),
http =      require('http'),
server =    http.createServer(app);

var app = express();

const redis =   require('redis');
const io =      require('socket.io');
const client =  redis.createClient();

致:

server.listen(3000, 'localhost');    

io.listen(server).on('connection', function(client){
    //Code
});
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
io.on('connection, function(client){
    //Code
});

server.listen(3000, function(){
    console.log("Listening on :3000");
});