您好,项目中我根据不同的场景给消息加了自定义属性,然后查询消息记录的时候,我想根据我自定义的消息属性来取消息列表,可以实现吗?
目前只支持按照 type 查询消息,type 指的是 TypedMessage 的类型。
您好,现在项目中有个场景,比如说用户A可以在公屏上发送消息,也可以在弹幕上发消息;用户B只能在弹幕上发消息,都是同步获取消息的。我的做法是:用了一个聊天室来处理,往公屏发消息加了自定义属性fromA,往弹幕发消息加了自定义属性fromB,取聊天记录的时候,我根据自定义属性筛选,不同地方展示不同的消息。但是取聊天记录的时候有个问题,比如A在公屏发了3个消息,然后B接着在弹幕上发了50条消息,某个用户进入聊天室默认先取20条数据,而公屏上那3条消息实际上是属于总消息的第51-53条消息,是不会显示的,除非弹幕加载更多,才会展示公屏上那3条消息(总第51-53条消息),如果弹幕上有更多的消息,那么A上面有可能根本就看不到;如果在一个页面用两个聊天室处理,一个用户应该只能进入一个聊天室,那么用户就不能实时收到两个聊天室发来的消息吧。您有什么好的方法来处理我遇到的问题,或者换种思路实现这个场景吗?
我清楚您的需求了。
我现在能想到一个最简单粗暴的方法使用两个聊天室,用两个 ClientId 分别加入。
@ylgrgyq
您好,目前查询历史消息时候是支持按照消息本身的类型来做查询的,可能可以考虑将公屏消息和弹幕消息作为两个不同的消息类型,进入聊天室后根据两个不同的消息类型来做查询,将结果做聚合后展示。
这个方法的问题在于消息类型因为只有两种,公屏消息和弹幕消息,所以文本消息,图片消息等实际消息类型需要用别的字段做区分了;再有就是每次进入对话需要查询两次历史消息,还需要做聚合等操作,实现起来会有些复杂。
以上是在现有机制下想出的方案,我们再看看有没有什么办法能做些改进以支持这种场景。