我正在尝试创建一个示例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的文档,但样本量较少。
答案 0 :(得分:2)
这是一个关于创建在地图上提供用户位置点的应用程序的好问题。用户基本上使用PubNub.subscribe()
连接到PubNub频道,并将从其他用户接收任何LAT / LONG坐标。所有用户都会发出PubNub.Publish(LAT/LONG)
个代码,以便频道由连接到该频道的所有用户接收。
为了对细分进行细分,您只需使用不同的频道。
您可以在iOS7上运行后台线程。建议的选项绑定到后台地理位置更改事件,然后发出PubNub.Publish(LAT/LONG)
以发送更改。您将绑定iOS多任务:didUpdateToLocation
的后台位置http://mobile.tutsplus.com/tutorials/iphone/ios-multitasking-background-location/。背景位置非常容易实现。
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以Daily Active Devices指标结算。如果用户整天或当天的任何时间点都已连接,那么我们会将计数器增加1
。这是一个24小时的窗口,我们增加这个数字。 24小时后,该值将重置为0
。
PubNub上的Presence将为您提供基于每个频道的连接分析,允许您实时检测总连接设备。