问题标签 [sendbird-syncmanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
84 浏览

sendbird - SendBird SyncManager:“推荐”清除现有本地数据库缓存的方法?

我正在尝试使用 Sendbird在原生 iOS 应用程序中发送聊天消息。他们有一个附加的SyncManager。它将频道列表和消息缓存在手机本地以提供离线支持。

我的应用程序允许用户注销应用程序。此时,我想清除消息/频道列表或 SyncManager 存储的任何其他内容的现有缓存。

我的问题是:如何清除 SyncManager 中的所有详细信息?他们的官方文档提到了 SBSMSyncManager.clearCache()但他们也提到将此方法仅用于调试目的,不推荐用于其他(生产?)目的。

从 SyncManager 中清除所有内容的“推荐”方法是什么?

0 投票
1 回答
134 浏览

sendbird - Sendbird SyncManager 频道分页问题

我在原生 iOS 应用程序中使用Sendbird来发送聊天消息。他们有一个附加的SyncManager。它将频道列表和消息缓存在手机本地以提供离线支持。

我正在尝试使用 SyncManager 的集合对频道列表进行分页。这是我的代码片段:

问题是query.hasNext永远不会设置为false. 我也尝试过检查collection.query.hasNext,但也true一直如此。

请注意,Sendbird 的基本 SDK 确实将 设置query.hasNext为 false,因此我可以确定查询是否有下一页,我应该再次调用。我想使用 SyncManager 进行分页。

他们的 SyncManager 示例应用程序发送下一页请求而不检查是否有可用的下一页,因此每次用户滚动到底部时,他们都在调用 API。我在这里错过了什么吗?

0 投票
1 回答
267 浏览

ios - SendBird:搜索个人聊天和群聊

SendBird 将每个频道视为他们的GroupChannel. 1:1 聊天在技术上也GroupChannel只有两个用户(isDistinct = true因此当您尝试再次创建它时,它会返回个人聊天)。

我的问题是,我如何GroupChannel按他们的名字搜索包括群组和 1:1 聊天的 s?群聊将有一个通用名称,该名称将显示给该组中的所有用户。但是对于 1:1 聊天,GroupChannel不会有名字,如果有,就不会显示给用户,对于 1:1 聊天,我们总是显示对方的名字(就像几乎所有的聊天系统一样工作)。

通常,主 UI 列表包含群聊和 1:1 聊天(所有GroupChannels)的混合。

所有的项目都是技术性的GroupChannel。请注意,所有 1:1 聊天都没有name列表中显示的实际。列表中显示的姓名是对方的姓名nickname

期待:

现在,如果用户搜索“joh”之类的内容,那么它应该返回名称包含“joh”的所有群聊或对方名称包含“joh”的所有 1:1 聊天。(基本上上面例子中显示的所有项目。)

我的尝试:

我最初的解决方案是将 1:1 频道名称保留为<user1 nickname> & <user2 nickname>,因此当用户按其姓名搜索其他用户时,1:1 频道看起来就像一个群组频道。

示例代码:

问题:

这样做的问题是:

  1. 如果用户搜索他们自己的名字(或者只是分隔符&或空格),那么所有的个人聊天都将是可见的,这无关紧要。
  2. 我的系统允许用户更改昵称,因此每次用户更改昵称时,都必须更新所有 1:1 的频道名称(这很痛苦)。
0 投票
0 回答
53 浏览

javascript - Sendbird:未正确创建群组频道

我正在使用 SendBird javascript SDK 进行聊天,并尝试通过以下代码创建群组频道:

代码成功返回通道对象,但通道仅包含作为通道成员的发起者/发送者。它返回:……“joinedMemberCount”:1,“memberCount”:1,“members”:[1]……</p>

相反,它应该创建一个频道并将接收者也添加为成员。正确的频道应该有:……“joinedMemberCount”:2,“memberCount”:2,“members”:[2]……</p>

你能告诉我这里可能出什么问题吗?