ruby-on-rails – 使用PubNub实现多用户移动位置仪表板

我正在尝试创建一个示例
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将为您提供基于每个通道的连接分析,允许您实时检测总连接设备.

点赞