gpt4 book ai didi

ios - 如何区分当前用户发送的 PNMessage 和其他用户发送的 PNMessage?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:00:45 24 4
gpt4 key购买 nike

我目前正在使用 PubNub 将类似聊天的功能构建到应用程序中。按照演示项目中的示例,我将以下内容添加到我的 viewDidLoad 以监听收到我的 channel 的消息:

[[PNObservationCenter defaultCenter] addMessageReceiveObserver:self withBlock:^(PNMessage *message) {
NSLog(@"message %@", message);
[self DisplayInLog: [NSString stringWithFormat:@"[%@]: %@",message.channel.name, message.message]];
[self showReceivedMessage:message];
}];

我的问题是,当当前用户使用 [PubNub sendMessage:text toChannel:self.currentChannel] 发送消息时,监听器接收消息(正如预期的那样),但我有难以与 PNMessage 区分哪个是当前用户发送的,哪个是其他人发送并被接收者接收的。我应该如何着手解决这个问题而不至于太老套(例如,比较消息的内容、发送消息的时间等)。

谢谢!

最佳答案

@daspianist

您必须添加存储用户标识符的字段,并在客户端通过从将作为消息发送的字典中检索值来检查谁是消息的发送者。例如:

[[PNObservationCenter defaultCenter] addMessageReceiveObserver:self withBlock:^(PNMessage *message) {

NSLog(@"message %@", message);
if (![[message.message valueForKey:@"sender"] isEqualToString:@"Bob"]) {

[self DisplayInLog: [NSString stringWithFormat:@"[%@]: %@",message.channel.name, message.message]];
[self showReceivedMessage:message];
}
}];

[PubNub sendMessage:@{@"message":@"This is actual message which we want to send. It can be any Objective-C type.", @"sender":@"Bob"} toChannel:self.currentChannel];

在上面的例子中,如果消息是从“Bob”发送的,它不应该处理消息

关于ios - 如何区分当前用户发送的 PNMessage 和其他用户发送的 PNMessage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24022502/

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