我正在尝试创建一个示例
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的文档,但样本量较少.
最佳答案 PubNub实时网络iOS多用户仪表板GeoLocation应用程序
这是一个关于创建在地图上提供用户位置点的应用程序的好问题.用户基本上使用PubNub.subscribe()连接到PubNub频道,并将从其他用户接收任何LAT / LONG坐标.所有用户都发布PubNub.Publish(LAT / LONG)代码,以便连接到该频道的所有用户都能收到该频道.
通过PubNub数据通道拆分和分割种群
为了对人口进行细分,您只需使用不同的渠道.
iOS后台任务更新位置PubNub
您有几个选项可以在iOS7上运行后台线程.建议的选项是绑定到Background GeoLocation Change Event,然后发出PubNub.Publish(LAT / LONG)以发送更改.您将为iOS Multitasking绑定: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 Basics: 07001
PubNub上的连接定价
PubNub账单Daily Active Devices指标.如果用户整天或在当天的任何时刻连接,那么我们将计数器增加1.这是在24小时窗口中我们增加此数字. 24小时后,该值重置为0.
PubNub Presence
PubNub上的Presence将为您提供基于每个通道的连接分析,允许您实时检测总连接设备.