移动多模态交互框架(3MF或threeMF)是一个适用于快速设备发现、功能检测和基于模式的RPC通信的通用且可扩展的即兴网络框架。
3MF允许设备之间的即兴通信,无需处理服务发现和管理、网络套接字和断开处理,以及数据序列化。数据交换通过简单的模式进行抽象,将代码复杂度降低到几行。为了适应广泛的用例,该框架非常通用且可扩展。
3MF创建一个P2P网络,以便设备之间共享即兴网络服务。远程3MF实例的发现及其在可见和消失过程中的管理由系统自动处理。每个对等节点都可以发布远程过程调用(在3MF的环境中称为命令),并在其他对等节点上执行这些命令。这些命令是一个语义性描述,定义了在哪个网络通道(TCP、UDP等)上以及按照什么模式共享哪些数据,无论是请求响应还是发布订阅。
3MF内置了命令,但其真正的力量在于其可扩展性。您可以自定义几乎每个部分,从头开始的自定义命令到网络通道和通信协议。
该框架通过即兴方式通信,这意味着它直接在本地网络上对等节点之间发送网络消息,而不需要中央实例。
3MF目前以Cocoa语言在iOS和OSX上实现。更大愿景是让这个系统也能覆盖到其他相关平台,如Android、Windows Phone等。如果您对将3MF移植到这些平台感兴趣,请随时联系我——如果您需要帮助,我将非常愿意提供。
当前实现使用ARC(自动引用计数)和最低部署目标为Mac OS X 10.7和iOS 5.0。
您可以使用 CocoaPods 来替代直接将源文件添加到项目中。按照 CocoaPods 网站的指南进行安装,并在您的 Podfile 中指定 threeMF,使用 pod 'threeMF', '~> 0.1'
。
否则,您可以把 threeMF 添加为一个 git 子模块,或者 下载 源代码并将手动复制到项目中。
$ git submodule add https://github.com/mgratzer/threeMF.git Vendor/threeMF
$ git submodule update --init --recursive
将 Vendor/threeMF/threeMF
拖放到您的 Xcode 项目中。
确保以下框架链接到了您的项目目标中: CFNetworking.framework
,Security.framework
,和 SystemConfiguration.framework
。
如果您想使用 TMFLocationCommand
和 TMFMotionCommand
,需要在您的 -Prefix.pch 文件中添加 CoreMotion.framework
和 CoreLocation.framework
。
请访问 Wiki 获取更详细的信息,以及 http://threemf.com/documentation/ 获取代码文档。
由 Martin Gratzer 开发,并在 @mgratzer 的支持下,由位于 克拉根福特大学 的 交互系统研究组 支持。
3MF 使用了优秀的 CocoaAsyncSocket 库来构建内置的 TCP 和 UDP 网络通道,使用 ytoolkit 中的部分来编码二进制数据。JSON-RPC 是默认通信协议,但也存在使用 MsgPack-ObjectiveC 的 编码类 用于 MsgPack-RPC。
threeMF 在 MIT 许可下可用。更多信息请参阅 LICENSE.txt 文件。