4

我正在尝试创建一个示例 IOS 应用程序,它将位置更新从移动设备从后台发布到 rails 后端,该后端连接到 postgres 数据库并呈现 Web 前端。

工作流程:

基本上,当用户通过 ouath 在其移动应用程序上登录时,该应用程序会进入后台并继续使用 pubnub 通道将后台位置数据发送到服务器。因此,用户 X 在他的手机上登录了一个应用程序,用户 Y 在她的手机上登录,然后他们连接到一个将他们放在仪表板上的频道。现在,用户 M 登录到仪表板并仅找到用户 X 和 Y。另一个用户 Z 可以在他的手机上登录,但他使用单独的频道(?),因此当 M 登录到 Web 仪表板但显示时没有显示当另一个用户 N 登录时

所以

X,Y ==== Channel A ===== User M (Web Dashboard) (Does not see Z)
Z   ==== Channel B(or channel A itself if possible) ==== User N( Web dashboard) (Does not see X,Y)

我的问题是三个方面:

1.) 我是否必须为每个仪表板用户创建单独的通道来实现此功能,然后单独连接它们?

2.) 是否有后台 pubnub 支持从后台发送位置更新(在 IOS7 上允许)

3.) 连接定价有点令人困惑,有没有人知道定价结构对于看起来像上面的实现,每个连接到任何通道或每个通道或其他方式的定价结构如何?

我假设生病必须启用 pubnub 存在启用来执行此操作。

是否有做类似事情的示例应用程序(可能聊天应用程序会喜欢这样的东西)。? Pubnub 有很多关于 API 的文档,但样本较少。

4

1 回答 1

2

PubNub 实时网络 iOS 多用户仪表板 GeoLocation App

这是一个关于创建在地图上提供用户位置点的应用程序的好问题。基本上,用户使用连接到 PubNub 频道PubNub.subscribe()并将接收来自其他用户的任何 LAT/LONG 坐标。所有用户都向一个频道发出PubNub.Publish(LAT/LONG)代码,该频道被连接到该频道的所有用户接收。

通过 PubNub 数据通道拆分和分割人群

为了细分人群,您只需使用不同的渠道

iOS 后台任务更新位置 PubNub

你有几个选项可以在 iOS7 上运行后台线程。推荐的选项是绑定到后台地理位置更改事件,然后发出一个PubNub.Publish(LAT/LONG)以发送更改。您将绑定 iOS 多任务处理:后台位置http://mobile.tutsplus.com/tutorials/iphone/ios-multitasking-background-location/ for didUpdateToLocation. 背景位置非常容易实现。

locationManager = [[CLLocationManager alloc] init];
[locationManager setDelegate:self];

// Increased Accuracy is used only when app is Visible/Open.
// Otherwise only significant changes are transmittable.
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];

- (void)
locationManager:     (CLLocationManager *)manager 
didUpdateToLocation: (CLLocation *)newLocation 
fromLocation:        (CLLocation *)oldLocation {
    CLLocationCoordinate2D currentCoordinates = newLocation.coordinate;
    NSLog(
        @" NEW LOCATION: Lat(%f) Long(%f)", 
        currentCoordinates.latitude,
        currentCoordinates.longitude
    );

    // Define a channel
    PNChannel *channel_1 = [PNChannel channelWithName:@"a" shouldObservePresence:NO];

    // Send Lat/Long
    [PubNub sendMessage:@{@"lat":currentCoordinates.latitude,@"long":currentCoordinates.longitude}  toChannel:channel_1];
}

PubNub iOS 基础:https ://github.com/pubnub/objective-c/tree/master/iOS#lets-start-coding-now-with-pubnub

PubNub 上的连接定价

每日活跃设备指标上的 PubNub 账单。如果用户整天或在当天的任何时候都处于连接状态,那么我们将计数器增加1. 这是在一个 24 小时窗口中,我们增加这个数字。24 小时后,该值重置为0

PubNub 存在

Presence on PubNub 将为您提供基于每个通道的连接分析,使您能够实时检测到所有连接的设备。

于 2013-11-14T03:11:09.540 回答