2011-02-09 75 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