- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我目前正在使用 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/
我目前正在使用 PubNub 将类似聊天的功能构建到应用程序中。按照演示项目中的示例,我将以下内容添加到我的 viewDidLoad 以监听收到我的 channel 的消息: [[PNObservat
我正在使用 PubNub 开发一个 IOS 消息传递应用程序。我使用 PubNub 的 history() api 请求将 PNMessage 对象列表传递给数组 (channelMessageHis
我正在尝试按照本教程使用 PubNub JavaScript SDK 发送推送消息 - https://www.pubnub.com/docs/swift/mobile-gateway#Publish
我是一名优秀的程序员,十分优秀!