Realm移动平台-探索实时数据同步功能

自2016年9月发布以来,Realm移动平台一直是人们期待已久的技术,它于2017年1月首次稳定发布证明了其价值。 它具有允许Realm Object Server与客户端数据库之间以两种方式进行数据同步的能力以及事件处理能力,这使得开发未来的移动应用程序成为可能。

Realm是一个精明的移动平台,是在充分了解最新的移动应用程序开发挑战之后开发的。 它还具有扩大开发人员对即将到来的移动趋势的视野的能力。 以下是其一些强度特征:

  • 托管的自由:Realm Mobile Platform可以在本地和云上托管
  • 基于对象:领域是基于对象的; 因此对象本身反映了数据库。 开发人员可以轻松避免与ORM相关的困难
  • 脱机优先功能:由于设备上嵌入了Realm Mobile数据库,因此Realm可以提供广泛的脱机优先体验
  • 易于集成:可轻松与现有基础架构集成
  • 它支持服务器端业务逻辑

我们创建了一个Hello World移动应用程序,使用户能够绘制任何草图或使用虚拟铅笔书写文本。 我们将通过它探索Realm移动平台的实时数据同步功能。

我们的应用程序“ Hello World”正被位于不同地理位置的两个iOS用户使用他们的iOS设备>>他们正在通过在其各个设备上用虚拟铅笔绘制草图来共享草图>>一位用户正在其设备中绘制草图,其他用户可以实时查看草图开发过程(相同的形状和颜色代码对其他人可见)。

  • 领域对象服务器配置
  • 领域应用程序用户身份验证
  • 实时同步过程
  1. 下载“ Mac OS捆绑软件”或“ Linux OS捆绑软件”
  2. 打开“ realm-mobile-platform”文件夹,然后双击文件“ start-object-server.command”,启动“ Realm Object Server”。
  3. 这将打开一个终端窗口并启动Realm服务器。
  4. 它将自动打开仪表板,如下图所示。 该仪表板是基于浏览器的应用程序,它提供一些必需的信息,例如:仪表板,领域,用户,功能等。

5.您可以在此处创建所需的用户数

  1. 现在运行该应用程序。 在应用程序中,我们通过向他们的应用程序提供凭据来验证用户连接领域服务器。 认证过程已在下面用技术术语进行了描述。
  -(无效)登录 
//基本服务器路径
NSURL * authURL = [NSURL URLWithString:[NSString stringWithFormat:@“ http://%@:9080”,kIPAddress]];

//通过`start-object-server.command'运行Realm Object Server时产生
//密码:@“ password”

密码:kPassword

//登录用户(异步,一旦用户自动登录,Realm将开始同步)
authServerURL:authURL
如果(错误){
UIAlertController * alertController = [UIAlertController alertControllerWithTitle:@“登录失败”消息:error.localizedDescription preferredStyle:UIAlertControllerStyleAlert];
[自助登录];
}]];

}
//服务器上的Realm虚拟路径。
//登录,〜用作简写形式。
NSLog(@“登录syncURL :::::::::::%@”,syncURL);
RLMRealmConfiguration * defaultConfig = [RLMRealmConfiguration defaultConfiguration];
[RLMRealmConfiguration setDefaultConfiguration:defaultConfig];
//self.window.rootViewController.view = [DrawView new];
self-> dView = [DrawView new];
self-> dView.backgroundColor = [UIColor whiteColor];
// [self-> dView BringSubviewToFront:self-> _ btnClear];
});
}];

2.成功登录将使用户能够实时将其操作与Realm服务器同步。

  1. 每当用户对我们的Realm Hello World应用程序执行任何操作时(例如,用户开始在iOS设备上绘图),应用程序都会将详细信息与Realm服务器同步(此处,应用程序会将颜色代码坐标(x,y点)同步到Realm服务器实时)。 如下所述,所有坐标都将添加到Realm数组中,最终将被同步到Realm服务器。
  -(void)touchesBegan:(NSSet *)touch withEvent:(UIEvent *)event 
//创建绘制路径对象
self.drawPath.color = self.currentColorName;
//创建绘制点对象
DrawPoint * drawPoint = [[DrawPoint alloc] init];
drawPoint.y = point.y;
//将绘制点添加到绘制路径

RLMRealm * defaultRealm = [RLMRealm defaultRealm];
[defaultRealm addObject:self.drawPath];

}

2.应用程序将向下同步服务器中的数据,并将其显示在已连接到Realm服务器的另一个经过身份验证的用户的屏幕上。

由于Realm Mobile Platform的独特潜力,在开发,实施和维护的背景下,双向数据同步,脱机优先功能和端点计算等功能的开发不再是复杂,复杂或价格昂贵的功能。 作为开发人员,我热切期待Realm的进一步发展。

原始来源:http://www.azilen.com/blog/realm-mobile-platform-real-time-data-synchronization/

最初发布@ http://www.azilen.com/