2011-02-09 72 views
9

我正在开发某种大型多人在线游戏。我的解决方案是服务器上的node.js socket.io。我需要解决方案来实现某种可以与socket.io通信的objective-c套接字来发送和接收json对象作为字符串。我不会在websocket中使用webkit。有没有可能?服务器将保持游戏状态,iPhone客户端将向服务器发送操作并接收服务器上的更改。iPhone Objective-C与Socket.IO套接字沟通

+0

此问题是离题; [只询问图书馆或其他非现场资源的建议的问题不属于Stack Overflow的主题](// meta.stackoverflow.com/q/251134/2747593)。 OP,如果你仍然有这个问题,那么请开始编写代码,当你有更具体的问题时再回来。请务必向我们展示[您尝试过的](http://whathaveyoutried.com)并包含[最小,完整,可验证示例](// stackoverflow.com/help/mcve)。 – 2016-12-22 19:08:30

回答

5

或者看看cocoaasyncsocket

CocoaAsyncSocket支持TCP和UDP。 AsyncSocket类用于TCP, ,AsyncUdpSocket类用于 UDP。下面介绍每个类。

AsyncSocket是一个TCP/IP套接字 网络库,包装CFSocket 和CFStream。它提供异步 操作,以及一个原生可可类 完成与委托支持。这里 重要特点:

  • 排队非阻塞的读取和写入,可选超时。你要 告诉它读什么或写什么, 它会在完成后给你打电话。

  • 自动插座验收。如果您告诉它接受连接,它会为每个连接调用自己的新实例。当然,您可以立即断开它们。

  • 代表支持。错误,连接,接受,读取完成,写入完成,进度和断开连接都会导致调用您的委托方法。

  • 基于运行循环,不基于线程。虽然您可以在主线程或工作线程上使用它,但您不必这样做。它使用NSRunLoop异步调用委托方法。委托方法包括一个套接字参数,允许您区分多个实例。

  • 自成一体。您不需要使用流或套接字。该课程处理 所有这些。

  • 支持通过IPv4和IPv6的TCP流。

该图书馆是公共领域, 最初由达斯汀沃斯编写。现在在公共场合 允许 并鼓励其持续的支持。

AsyncUdpSocket是一个UDP/IP套接字网络库,它包装了 CFSocket。它的工作原理与TCP版本的 几乎完全相同,但专门用于UDP的设计为 。这包括 排队非阻塞发送/接收 操作,全委托支持, 基于运行循环,自包含类, 和支持IPv4和IPv6。

+0

这个库是否可以与Socket.IO一起使用? – greenimpala 2012-01-08 17:56:21

11

编辑2015年3月19日:的Socket.IO人创建的支持Socket.IO V1.0 +自己的iOS库。在这里获得:https://github.com/socketio/socket.io-client-swift


老答案

我更新fpotter的socket.io库版本0.7.2工作 - 0.9.x版本
它支持套接字和XHRpolling。

https://github.com/pkyeck/socket.IO-objc

也许你想看看。

+0

嗨pkyech。我正在使用你的库,它适用于我的iOS7应用程序。现在,我想连接一次,并通过NSObject管理每个viewController的事件,以避免太多连接/断开连接。你有什么教程吗? – Maziyar 2014-01-09 07:14:16