gpt4 book ai didi

java - SendBird ChannelHandler onMessageReceived 在 Android 上未调用

转载 作者:行者123 更新时间:2023-12-02 11:02:04 25 4
gpt4 key购买 nike

我刚刚开始在 Android 上使用 SendBird。我想进行一对一聊天,因此我将用户连接到 SendBird,设置处理程序,创建 channel 并发送消息,但是 onMessageReceived 不起作用。请参阅下面的代码:

var handler = object : SendBird.ConnectHandler{
override fun onConnected(p0: User?, p1: SendBirdException?) {
SendBird.addChannelHandler(UNIQUE_HANDLER_ID, object : SendBird.ChannelHandler() {
override fun onMessageReceived(p0: BaseChannel?, p1: BaseMessage?) {
Log.d(TAG, "addChannelHandler - onMessageReceived - messageId ${p1?.messageId}")
Log.d(TAG, "addChannelHandler - onMessageReceived - channelUrl ${p1?.channelUrl}")

if (p1 is UserMessage) {
Log.d(TAG, "addChannelHandler - onMessageReceived - messageId ${p1?.message}")
}
}
})
}
}


override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

SendBird.connect("222222", handler)
SendBird.connect("111111", object : SendBird.ConnectHandler {
override fun onConnected(p0: User?, p1: SendBirdException?) {
Log.d(TAG, " SendBird.connect - userID - " + p0?.userId)

var list = mutableListOf("111111", "222222")

var params = GroupChannelParams()
params.setDistinct(true)
.addUserIds(list)

GroupChannel.createChannel(params, object : GroupChannel.GroupChannelCreateHandler {
override fun onResult(p0: GroupChannel?, p1: SendBirdException?) {

groupChannel?.sendUserMessage("Hello", object : BaseChannel.SendUserMessageHandler {
override fun onSent(p0: UserMessage?, p1: SendBirdException?) {
Log.d(TAG, "sendUserMessage - onSent - ${p0?.message}")
}
})



}
})

最佳答案

SendBird Android 和 iOS SDK 适用于移动设备上的客户端代码。每个客户端只能建立一个用户连接,而不是客户端移动应用程序上的多个用户连接。

我建议在两个单独的设备/模拟器上进行测试,以模拟应用程序中两个用户的消息传递。该代码应该有一个处理程序,为调用 onMessageReceived(p0: BaseChannel?, p1: BaseMessage?) 的当前 Android 用户添加 ChannelHandler。您的应用程序可能有一个用户列表,其中用户 111111 可以选择用户 222222 并向该用户发送消息。选择后,应用程序将为用户 111111(当前用户)和用户 222222(所选用户)创建不同的群组 channel 。然后,用户 111111 可以在该 channel 中发送消息。

如需代码示例,请随时在此处下载我们的 Android 聊天示例: https://github.com/smilefam/Sendbird-Android

我们很乐意了解有关您的用例的更多信息并帮助您实现这一目标。请发邮件support@sendbird.com如需进一步支持并引用主题行中的“StackOverflow”。

-- Janna,SendBird 解决方案工程师

关于java - SendBird ChannelHandler onMessageReceived 在 Android 上未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51262434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com