我正在尝试使用getstream.io聊天SDK创建类似松弛的应用程序。在文档中,我们可以找到如何启动频道以开始群聊。但是,没有有关一对一聊天的任何信息。有谁知道如何发起一对一聊天?

代码示例以创建新的群组聊天渠道

const client = new StreamChat('t5v25xyujjjq');
await client.setUser(
    {
        id: 'jlahey',
        name: 'Jim Lahey',
        image: 'https://i.imgur.com/fR9Jz14.png',
    },
    'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiamxhaGV5In0.sFe9WvuHIKgQmgtEWFh708Nu_a2wy8Zj3Q8BJz7fDRY',
);

const channel = chatClient.channel('messaging', 'groupname', {
    name: 'Founder Chat',
    image: 'profile image url',
    members: ['user1', 'user2'],
});
const response = await channel.sendMessage({
    text: 'Josh I told them I was pesca-pescatarian'
});

最佳答案

如果要保证N个用户之间仅存在一个频道,则可以实例化没有ID的频道及其成员列表。

当您执行此操作时,API将确保仅存在一个包含成员列表的频道(成员的顺序无关紧要)。

const  distinctChannel = conversation.channel("messaging","", {
   members: [user1.id, user2.id],
});

await distinctChannel.create();


由于两个成员的渠道数据都将相同;我建议不要像在代码示例中那样存储image字段。呈现对话时,使用“其他”成员个人资料图像作为频道图像会更容易。

例如:

let channelImage = "https://path/to/fallback/image";

otherMembers = channel.members.filter(member => member.user.id != currentUser.id);

if otherMembers.length > 0 {
   channelImage = otherMembers[0].image;
}

08-25 11:43
查看更多