2011-02-09 27 views
9

Tôi đang phát triển một số loại trò chơi hội đồng quản trị nhiều người chơi lớn. Giải pháp của tôi là node.js socket.io trên máy chủ. Tôi cần giải pháp để thực hiện một số loại socket-c mục tiêu mà sẽ giao tiếp với socket.io để gửi và nhận các đối tượng json dưới dạng chuỗi. tôi sẽ không sử dụng webkit với websocket. Có khả năng nào không? máy chủ sẽ giữ trạng thái của trò chơi, khách hàng iPhone sẽ gửi hành động đến máy chủ và nhận các thay đổi trên máy chủ.Giao tiếp socket Objective-C của iPhone với Socket.IO

+0

Câu hỏi này không có chủ đề; [câu hỏi chỉ yêu cầu cho các đề xuất của thư viện hoặc các tài nguyên ngoài trang web khác là chủ đề cho Stack Overflow] (// meta.stackoverflow.com/q/251134/2747593). OP, nếu bạn vẫn gặp sự cố này, hãy bắt đầu viết mã và quay lại khi bạn gặp sự cố cụ thể hơn. Hãy chắc chắn cho chúng tôi thấy [những gì bạn đã thử] (http://whathaveyoutried.com) và bao gồm [Ví dụ tối thiểu, hoàn chỉnh, có thể xác minh được] (// stackoverflow.com/help/mcve). –

Trả lời

5

Hoặc có một cái nhìn tại cocoaasyncsocket:

CocoaAsyncSocket hỗ trợ TCP và UDP. Lớp AsyncSocket dành cho TCP, và lớp AsyncUdpSocket là dành cho UDP. Mỗi lớp được mô tả dưới đây.

AsyncSocket là một ổ cắm TCP/IP thư viện mạng kết thúc tốt đẹp CFSocket và CFStream. Nó cung cấp hoạt động không đồng bộ và lớp cacao bản địa hoàn chỉnh với sự hỗ trợ của người được ủy quyền. Tại đây là các tính năng chính:

  • Đọc và ghi không chặn theo hàng, với thời gian chờ tùy chọn. Bạn cho biết nội dung cần đọc hoặc viết và nó sẽ gọi cho bạn khi hoàn thành.

  • Chấp nhận socket tự động. Nếu bạn yêu cầu nó chấp nhận các kết nối, nó sẽ gọi cho bạn các phiên bản mới của chính nó cho mỗi kết nối. Bạn có thể, tất nhiên, ngắt kết nối chúng ngay lập tức.

  • Hỗ trợ ủy quyền. Lỗi, kết nối, chấp nhận, đọc hoàn thành, ghi hoàn thành, tiến bộ và ngắt kết nối tất cả dẫn đến một cuộc gọi đến phương pháp đại biểu của bạn.

  • Dựa trên vòng chạy, không dựa trên luồng. Mặc dù bạn có thể sử dụng nó trên chủ đề chính hoặc công nhân, bạn không phải làm như vậy. Nó gọi các phương thức ủy nhiệm không đồng bộ bằng NSRunLoop. Các phương thức ủy nhiệm bao gồm tham số socket, cho phép bạn phân biệt giữa nhiều cá thể.

  • Tự chứa trong một lớp học. Bạn không cần phải muck xung quanh với suối hoặc ổ cắm. Lớp học xử lý tất cả điều đó.

  • Hỗ trợ luồng TCP qua IPv4 và IPv6.

Thư viện là miền công cộng, ban đầu được viết bởi Dustin Voss. Bây giờ, có sẵn trong cài đặt công khai để cho phép và khuyến khích hỗ trợ liên tục của nó.

AsyncUdpSocket là thư viện mạng ổ cắm UDP/IP kết thúc tốt đẹp CFSocket. Nó hoạt động gần như chính xác như phiên bản TCP, nhưng được thiết kế dành riêng cho UDP.Điều này bao gồm hoạt động gửi/nhận không xếp hàng đợi hoạt động, hỗ trợ đầy đủ của đại biểu, lớp học tự quản chạy vòng, và hỗ trợ IPv4 và IPv6.

+0

Thư viện này có hoạt động với Socket.IO ra khỏi hộp không? – greenimpala

11

sửa 2015/03/19: Những kẻ Socket.IO tạo thư viện iOS của mình có hỗ trợ Socket.IO v1.0 +. Nhận nó ở đây: https://github.com/socketio/socket.io-client-swift


câu trả lời cũ

tôi thư viện socket.io cập nhật fpotter để làm việc với phiên bản 0.7.2 - 0.9.x.
Nó hỗ trợ ổ cắm và XHRpolling.

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

Có thể bạn muốn kiểm tra.

+0

Xin chào pkyech. Tôi đang sử dụng thư viện của bạn và nó hoạt động hoàn hảo với ứng dụng iOS7 của tôi. Bây giờ tôi muốn kết nối một lần và quản lý các sự kiện từ mỗi viewControllers bởi NSObject để tránh quá nhiều kết nối/ngắt kết nối. Bạn có bất kỳ hướng dẫn về điều đó? – Maziyar

+0

xin lỗi, nhưng không có hướng dẫn nào cho việc này. – pkyeck

+0

Tôi đang thêm [link] (https://github.com/pkyeck/socket.IO-objc) thư viện trong Xcode 7 và iOS 9. Nhưng sau khi kết nối nó chỉ là cho tôi một phản ứng của 'mã lỗi 400'. Tuy nhiên nếu tôi làm nó nhanh chóng thì nó kết nối đúng. Thư viện mục tiêu c này có lỗi thời không? @pkyeck –

Các vấn đề liên quan