【问题标题】:iPhone Objective-C socket communication with Socket.IO [closed]iPhone Objective-C 套接字与 Socket.IO 通信 [关闭]
【发布时间】:2011-06-24 12:00:59
【问题描述】:

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

【问题讨论】:

标签: iphone objective-c node.js sockets socket.io


【解决方案1】:

2015/03/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

也许你想看看。

【讨论】:

  • 嗨 pkyech。我正在使用您的库,它与我的 iOS7 应用程序完美配合。现在我想连接一次并通过 NSObject 管理来自每个 viewControllers 的事件,以避免过多的连接/断开连接。你有这方面的教程吗?
  • 抱歉,没有这方面的教程。
  • 我在 Xcode 7 和 iOS 9 中添加 link 库。但连接后它只是给我一个 error code 400 的响应。但是,如果我快速执行此操作,则它可以正确连接。这个目标 c 库是否已过时? @pkyeck
【解决方案2】:

或者看看cocoaasyncsocket:

CocoaAsyncSocket 支持 TCP 和 UDP。 AsyncSocket 类用于 TCP, 并且 AsyncUdpSocket 类用于 UDP。每个类如下所述。

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

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

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

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

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

  • 独立于一类。你不需要弄乱流或套接字。类处理 所有的。

  • 支持 IPv4 和 IPv6 上的 TCP 流。

图书馆是公共领域, 最初由达斯汀·沃斯 (Dustin Voss) 撰写。现在 可在公共环境中使用以允许 并鼓励其继续提供支持。

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

【讨论】:

  • 这个库能否与 Socket.IO 一起使用?
【解决方案3】:

【讨论】:

  • 这个库好像不再维护了,git项目甚至没有正确克隆--recursive
【解决方案4】:

如果您打算开发本机应用程序,我建议您查看 Apple 文档以了解流式传输和套接字。 http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Streams/Streams.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-12
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    相关资源
    最近更新 更多