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
Object Redis发送一个对象,其中包含要在方法调用时使用的消息_Object_Redis_Stackexchange.redis - Fatal编程技术网

Object Redis发送一个对象,其中包含要在方法调用时使用的消息

Object Redis发送一个对象,其中包含要在方法调用时使用的消息,object,redis,stackexchange.redis,Object,Redis,Stackexchange.redis,您好,我将redis作为我的SignalR应用程序的背板,我希望redis向特定组发送消息,无论它们位于哪个SignalR实例上。我得到了signer和redis设置。我现在遇到的问题是,我想向下发送一个对象类型的数据,该对象类型将由signer方法使用,该方法将数据向下发送到客户端。首先是发布的方法 public async Task RedisBroadcast(string group, string message, object data) { var pub

您好,我将redis作为我的SignalR应用程序的背板,我希望redis向特定组发送消息,无论它们位于哪个SignalR实例上。我得到了signer和redis设置。我现在遇到的问题是,我想向下发送一个对象类型的数据,该对象类型将由signer方法使用,该方法将数据向下发送到客户端。首先是发布的方法

public async Task RedisBroadcast(string group, string message, object data)
    {
        var pub = Connection.GetSubscriber();
        Program.WriteConsole($"> Broadcasting to Group: {group} Message: {message}");
        await pub.PublishAsync(group, message);
    }
我需要将参数数据与发布消息一起发送,因为稍后在sub接收消息的方法中,我希望执行类似的操作

await sub.SubscribeAsync(group, (channel, message) =>
        {
            Program.WriteConsole("Got notification: " + (string)message);

            switch (message)
            {
                case "TopPlayers":
                    TopPlayersbroadcast(group, message, data);
                    break;
            }
        });
因此,根据消息的不同,我调用不同的方法,然后用数据将消息广播到所有子客户机。这是可能的吗?

这是可能的,但您需要在有效负载内对数据进行编码,即在
消息
内,在
(频道,消息)
对中获得的
重定值
。Redis库非常谨慎地没有对有效负载应该是什么样子的持有异议,所以它不认为您想要这样编码。请注意,因为它是一个
重贴现值
,而不是
字符串
,所以您可以做一些比传递原始
字符串消息
更细微的事情

如果这是我,我可能会在这个场景中看到protobuf net和对象继承之类的东西-因为a:它与SE.Redis配合得很好,因为SE.Redis支持二进制有效负载,b:继承允许您相当容易地表示数据——可能是将
消息
数据
嵌入到与基类型相同的基本消息中,但是对于类似的方案存在许多不同的布局