gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 03:19:50 25 4
gpt4 key购买 nike

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

工作流程:

基本上,当用户通过 ouath 在其移动应用程序上登录时,该应用程序会进入后台并继续使用 pubnub channel 将后台位置数据发送到服务器。因此,用户 X 登录其手机上的应用程序,用户 Y 登录她的手机应用程序,然后他们连接到将其显示在仪表板上的 channel 。现在,用户 M 登录到仪表板,只找到用户 X 和 Y。另一个用户 Z 可以在他的手机上登录,但他使用单独的 channel (?),因此当 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.) 我是否必须创建单独的 channel 来为每个仪表板用户实现此目的,然后单独连接它们?

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

3.) 连接定价有点令人困惑,有谁知道对于每个与任何 channel 的连接或每个 channel 或其他方式的实现如上所示的定价结构如何?。

我假设我必须启用 pubnub 存在启用才能执行此操作。

是否有示例应用程序可以执行类似的操作(可能聊天应用程序需要类似的操作)。 ? Pubnub 有很多有关 API 的文档,但示例较少。

最佳答案

PubNub 实时网络 iOS 多用户仪表板地理定位应用

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

通过 PubNub 数据通道分割和分割群体

为了分割人群,您只需使用不同的 channel 即可。

iOS 后台任务更新位置 PubNub

您有多种选项可以在 iOS7 上运行后台线程。推荐的选项是绑定(bind)到后台地理位置更改事件,然后发出 PubNub.Publish(LAT/LONG) 以发送更改。您将绑定(bind) iOS 多任务处理:后台位置 http://mobile.tutsplus.com/tutorials/iphone/ios-multitasking-background-location/对于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 Basics: https://github.com/pubnub/objective-c/tree/master/iOS#lets-start-coding-now-with-pubnub

PubNub 上的连接定价

PubNub 账单为 Daily Active Devices公制。如果用户全天或当天的任何时间点都处于连接状态,那么我们会将计数器增加 1。这是在 24 小时窗口内我们增加该数字的时间。 24 小时后,该值重置为 0

PubNub 存在

PubNub 上的状态将为您提供基于每个 channel 的连接分析,使您能够实时检测当前连接的设备总数。

关于ruby-on-rails - 使用 PubNub 实现多用户移动位置仪表板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19967640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com