pubnub-chat objective c的用户列表

我有应用程序使用pubnub聊天function。 我想执行以下function

1)register / login user in pubnub programatically for chat 2)Get list of the all the users 3)Make friend and send 1st message to the user 

我知道如何创建频道。 我通过以下代码创建了频道:

  PNConfiguration *configuration = [PNConfiguration configurationWithPublishKey:@"pub-c-XXXXXXXXXXXX-a2bf-XXXX-XXXX-XXXXXXXXXXXX"subscribeKey:@"sub-c-XXXXXXXXXXXX-02d0-XXXX-XXXX-XXXXXXXXXXXX"]; self.client = [PubNub clientWithConfiguration:configuration]; //[self.client addListener:self]; [self.client subscribeToChannels: @[@"my_channel"] withPresence:YES]; I get the channel architecture by : http://pubnub.github.io/pubnub-design-patterns/2015/03/05/Inbound-Channel-Pattern.html But how do i get the list of the users and their channel and send the message. I also found this : https://www.pubnub.com/docs/ios-objective-c/presence-sdk-v4 but this only show the friends status. whether they are online / offline by Join leave timeout Please advice and help 

用于查找用户列表的代码如下,但仍显示ZERO用户:

 (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { PNConfiguration *configuration = [PNConfiguration configurationWithPublishKey:@"pub-c-XXXXXXXXXXXX-a2bf-XXXX-XXXX-XXXXXXXXXXXX"subscribeKey:@"sub-c-XXXXXXXXXXXX-02d0-XXXX-XXXX-XXXXXXXXXXXX"]; self.client = [PubNub clientWithConfiguration:configuration]; //Subscription process results arrive to listener which should adopt to PNObjectEventListener protocol and registered using: [self.client addListener:self]; //Listeners callbacks: [self.client subscribeToChannels: @[@"XXX"] withPresence:YES]; configuration.uuid = @"XXX"; [self.client hereNowForChannel:@"XXX" withVerbosity:PNHereNowState completion:^(PNPresenceChannelHereNowResult *result, PNErrorStatus *status) { // Check whether request successfully completed or not. if (!status.isError) { NSLog(@"list of users %@", result.data.uuids); NSLog(@"list of result.data.occupancy %@", result.data.occupancy); // result.data.uuids - dictionary with active subscriber. Each entry will have next // fields: "uuid" - identifier and "state" if it has been provided. // result.data.occupancy - total number of active subscribers. } // Request processing failed. else { NSLog(@"FAIL"); // Handle presence audit error. Check 'category' property to find // out possible issue because of which request did fail. // // Request can be resent using: [status retry]; } }]; } 

PubNub Here Now with State

您需要使用withVerbosity:PNHereNowState调用hereNowForChannel以获取用户的状态以及所有订阅的用户。

hereNowForChannel的Objective-C SDK API参考文档有更多详细信息。

查看代码,如果您始终将UUID设置为@“XXX”,您将只有1个用户。 PubNub的Presence附加组件使用UUID属性来跟踪通道上的活动用户,如果您只使用1个UUID,则PubNub会将每个客户端视为同一客户端。

以下是关于设置UUID的知识库文章https://www.pubnub.com/knowledge-base/discussion/138/how-do-i-set-the-uuid

此外,iOS PubNub SDK将自动创建和重用UUID。 这是4.2 sdk的新function。 https://www.pubnub.com/docs/ios-objective-c/api-reference-sdk-v4#uuid_example_2