iPhone Objective-C 套接字与 Socket.IO 通信 [关闭]

Posted

技术标签:

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

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

【问题讨论】:

这个问题跑题了; questions asking only for recommendations of libraries or other off-site resources are off-topic for Stack Overflow。 OP,如果您仍然遇到此问题,请开始编写代码,并在您遇到更具体的问题时回来。请务必向我们展示what you have tried 并附上Minimal, Complete, Verifiable Example。 【参考方案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】:

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

【讨论】:

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

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

【讨论】:

以上是关于iPhone Objective-C 套接字与 Socket.IO 通信 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何为 iPhone 制作聊天客户端 [关闭]

带有 WebServer 的 Objective-C 套接字

iOS 9 SDK Objective-C 的 WebSockets 客户端

iPhone - SBJsonParser 的另一个 Objective-C 内存泄漏

在 iPhone 上侦听 CocoaASyncSocket 接收连接但新套接字不调用委托

iOS 上的 Objective-C 套接字发送和接收