threeMF 0.1

threeMF 0.1

测试已测试
Lang语言 Obj-CObjective C
许可 MIT
发布最新发布2014年12月

Martin Gratzer维护。



  • Martin Gratzer

移动多模态交互框架(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。

向Xcode项目添加3MF

您可以使用 CocoaPods 来替代直接将源文件添加到项目中。按照 CocoaPods 网站的指南进行安装,并在您的 Podfile 中指定 threeMF,使用 pod 'threeMF', '~> 0.1'

否则,您可以把 threeMF 添加为一个 git 子模块,或者 下载 源代码并将手动复制到项目中。

  1. 将框架作为一个 git 子模块添加。进入您的项目的根目录,并执行以下命令。
    $ git submodule add https://github.com/mgratzer/threeMF.git Vendor/threeMF
    $ git submodule update --init --recursive 
  1. Vendor/threeMF/threeMF 拖放到您的 Xcode 项目中。

  2. 确保以下框架链接到了您的项目目标中: CFNetworking.frameworkSecurity.framework,和 SystemConfiguration.framework

  3. 如果您想使用 TMFLocationCommandTMFMotionCommand,需要在您的 -Prefix.pch 文件中添加 CoreMotion.frameworkCoreLocation.framework

文档

请访问 Wiki 获取更详细的信息,以及 http://threemf.com/documentation/ 获取代码文档。

作者

Martin Gratzer 开发,并在 @mgratzer 的支持下,由位于 克拉根福特大学交互系统研究组 支持。

感谢

3MF 使用了优秀的 CocoaAsyncSocket 库来构建内置的 TCPUDP 网络通道,使用 ytoolkit 中的部分来编码二进制数据。JSON-RPC 是默认通信协议,但也存在使用 MsgPack-ObjectiveC编码类 用于 MsgPack-RPC

许可证

threeMF 在 MIT 许可下可用。更多信息请参阅 LICENSE.txt 文件。