我正在构建一个允许用户在屏幕上绘图的应用程序。我想添加网络功能,以便用户A可以在用户B的屏幕上绘图。我目前的计划是建立一个系统,我有自己的UserOrNetworkTouch对象,可以基于真正的UITouch或来自网络的消息创建,并基于UserOrNetworkTouch事件的应用程序中的所有绘图,而不是比UITouch事件。
我想要使用此系统的另一件事是录制触摸,因此用户可以按“录制”,然后在以后播放他们的绘图。
我想确保我不是在这里重新发明轮子。是否有可用的库可以为我处理部分或全部内容?
答案 0 :(得分:3)
您可能不会通过网络发送UITouch
个对象(尽管如果您愿意,也可以)。我可能打包然后将位置触摸到某种类型的结构中,然后发送它以减少您发送的流量。如果您需要整个UITouch对象及其所有数据,请将对象发送到您的服务器。
您可以使用CFNetwork
框架从客户端应用程序向服务器发送数据。如果你这样做,你应该尝试使用IPv6。
Apple在此处提供了使用CFNetwork streams
如果您想录制触摸事件,只需使用NSArray
或NSDictionary
,如果您想存储说触摸以及触摸发生时的时间戳。
然后只需在用户制作时将每个触摸添加到数组或字典中。
更新:我不会浪费你的时间使用Apple的WiTap示例代码。我以前读过它并且其中有很多代码,如果你想要一个简单的客户端/服务器应用程序并且快速运行,这只是令人困惑和无关紧要。如果您之前没有进行任何网络编程,那么对您来说很可能会让您感到困惑。
我会先让网络传输工作,如果您愿意,可以参考WiTap获取Bonjour网络部分,这样您就可以自动发现客户端和服务器。但只有在数据流首先工作后才能添加Bonjour支持。
答案 1 :(得分:0)
一个好的起点是Apple的WiTap sample。它建立了一个超过Bonjour的游戏并来回发送。>
另外看一下GameKit会让一些网络变得更简单。
SQLite DB是记录事件的好地方。搜索'fmdb'SQLite包装器以获得一个很好的Objective-C包装器。