【问题标题】:socket io connecting but not emmiting套接字 io 连接但不发射
【发布时间】:2015-07-08 00:06:57
【问题描述】:

我有 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();
    });
});

【问题讨论】:

    标签: node.js redis socket.io


    【解决方案1】:

    你需要改变你的服务器的监听:

    改变这些:

    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");
    });
    

    【讨论】:

      猜你喜欢
      • 2017-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多