首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >socket.io客户端未从服务器接收io.emit (使用redis适配器)

socket.io客户端未从服务器接收io.emit (使用redis适配器)
EN

Stack Overflow用户
提问于 2016-08-06 06:29:01
回答 1查看 1.3K关注 0票数 0

我有一个问题,从最近更新到1.4.5开始。(这在过去的两年里一直有效)。因此,当我向服务器发送client-msg时,服务器接收到该消息,然后应该将该消息发送回所有连接的套接字(包括其自身)。我现在遇到的问题是我不能再向所有套接字发送消息了。如果我将io.emit更改为socket.emit,我可以很好地接收server-response,但当然,这只适用于那个套接字。我甚至去了(稀疏的) socket.io文档,并尝试使用发射器库,但没有任何运气。我遗漏了什么?

服务器端:

代码语言:javascript
复制
var redisPort = 6379
var io = require('socket.io');
var redisAdapter = require('socket.io-redis');
var emitter = require('socket.io-emitter')( { host: 'localhost' , port : redisPort } );//6379

io = io.listen( httpServer ); //express server
io.adapter( redisAdapter({ host: 'localhost' , port : redisPort }) );//6379
io.on('connection', function( socket ){

    socket.on('client-msg', function( data ){
        var msgObject = { content : '' , status : 0 };
        if( data && data.content ){
            msgObject.content = data.content;
            msgObject.status = 1;
        }

        io.emit('server-response', msgObject );//doesn't work ( noone gets the data )
        emitter.emit('server-response', msgObject ); //doesn't work ( noone gets the data )
        socket.emit( 'server-response', msgObject );//works ( just the one socket gets the data )

    });

    socket.on('disconnect', function( data ) { 
        //do some stuff unrelated to emitting                           
    });

});

客户端:

代码语言:javascript
复制
var socketio = io.connect( window.location.origin  , { transports : ['websocket'] } );

socketio.emit("client-msg" , { content : msg  });

socketio.on("server-response", function( data ) {

    if( data.status == 1 ){
        displayTheMessage( data );
    }

});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-08 23:20:02

在运行调试程序并在线搜索类似的错误后,我发现了这篇文章:https://github.com/socketio/socket.io/issues/2378

原来我运行的不是兼容版本的socket.io,socket.io-redis在本文发表时是socket.io v1.4.4和socket.io-redis 1.0.0

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38798550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档