iPhone与Objective-C套接字通信与Socket.IO

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

编辑2015/03/19: Socket.IO人创build了自己的支持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

也许你想看看。

或者看看cocoaasyncsocket :

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

AsyncSocket是一个包装CFSocket和CFStream的TCP / IP套接字networking库。 它提供了asynchronous操作,以及一个完整的代理支持的本地cocoa类。 以下是主要特点:

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

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

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

  • 基于运行循环,而不是基于线程。 虽然您可以在主线程或工作线程上使用它,但不一定非要。 它使用NSRunLoopasynchronous调用委托方法。 委托方法包含一个套接字参数,允许您区分多个实例。

  • 自成一体。 你不需要使用stream或套接字。 这个类处理所有这些。

  • 支持通过IPv4和IPv6的TCPstream。

图书馆是公共领域,最初由Dustin Voss编写。 现在可以在公共场合获得并鼓励继续提供支持。

AsyncUdpSocket是包装CFSocket的UDP / IP套接字networking库。 它几乎完全像TCP版本一样工作,但是专门为UDPdevise的。 这包括排队的非阻塞发送/接收操作,完整的委托支持,基于运行循环的自包含类以及对IPv4和IPv6的支持。

如果你打算做一个原生的应用程序,我会build议检查苹果文档的stream媒体和套接字。 http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Streams/Streams.html

看看这个: https : //github.com/fpotter/socketio-cocoa