2010-10-11 34 views
7

Tôi đang cố viết một ứng dụng trò chuyện đơn giản cho iPhone (làm thử nghiệm). Có cách nào đơn giản để hai thiết bị khám phá địa chỉ IP của nhau hay không và địa chỉ có API đơn giản hay giao thức để tôi gửi tin nhắn văn bản qua lại không?Cách thực hiện giao tiếp ngang hàng trong ứng dụng iPhone?

Tôi đã điều tra SIP (cụ thể là Sofia và eXosip), nhưng những công cụ này tồn tại dưới dạng thư viện C và vượt quá khả năng hiện tại của tôi để chuyển chúng sang iPhone.

Cập nhật: Tôi đang cố gắng để kết nối hai thiết bị trên Internet (ví dụ: không qua Bluetooth hoặc một mạng không dây địa phương, đó là những gì GameKit không).

+2

Bạn có lẽ nên làm rõ liệu các thiết bị có trên cùng một mạng LAN hay không kết nối qua Internet. –

+0

@Robot K: đã đồng ý và hoàn thành. – MusiGenesis

Trả lời

5

Bạn sẽ cần một máy chủ cung cấp dịch vụ làm trận đấu. Game Center làm cho điều này khá dễ dàng, nhưng người dùng của bạn sẽ phải có tài khoản Game Center. Ngoài ra, bạn có thể thiết lập máy chủ XMPP (trước đây là Jabber, đó là những gì có sức mạnh Google Chat) (tôi chưa bao giờ làm điều này, nhưng có một số sẵn có) và sử dụng số XMPP Framework for Cocoa. Có hướng dẫn sử dụng trong ứng dụng iPhone here.

Tôi chắc rằng có các máy chủ trò chuyện và nguồn khách khác cũng có sẵn. IRC and Mobile Colloquy đến với tâm trí.

Cuối cùng, bạn có thể viết máy chủ của riêng mình bằng ngôn ngữ/khung máy chủ yêu thích của mình. Đây không phải là quá khó (tôi đã làm nó bản thân mình), nhưng nó xa những gì tôi muốn gọi đơn giản, và tôi sẽ không sử dụng nó cho một hệ thống sản xuất.

+0

+1 liên kết XMPP tuyệt vời - Tôi yêu các liên kết với các ví dụ về mã hoạt động. Thật không may, tôi đang thực sự cố gắng làm SIP/RTP - Tôi đã tập trung vào trò chuyện đầu tiên để có được những thứ mạng làm việc ra mà không cần phải lo lắng về âm thanh hoặc video được nêu ra. Bạn có gặp phải bất kỳ liên kết iPhone/VoIP hữu ích nào không? – MusiGenesis

+0

Ngoài ra, cảm ơn một lần nữa cho liên kết XMPP. XMPP sẽ làm việc hoàn hảo cho một khía cạnh khác của điều này tôi phải viết. – MusiGenesis

+0

Tôi đã xem xét SIP một thời gian ngắn, nhưng không nhận được rất xa. Nó đã được một thời gian trước đây, do đó, có thể có nhiều hơn ra khỏi đó ngay bây giờ. –

2

Có hỗ trợ cho chính xác loại mạng ngang hàng đặc biệt này trong GameKit. Hãy nhìn vào nửa cuối tài liệu GameKit để biết chi tiết:

http://developer.apple.com/library/ios/#documentation/...

+0

Mọi thứ tôi đã đọc về 'GameKit' chỉ ra rằng nội dung ngang hàng chỉ hoạt động qua Bluetooth hoặc không dây cục bộ, không phải qua Internet. Nhưng tôi không chắc chắn về điều đó, tất nhiên. – MusiGenesis

1

NSNetService là một lựa chọn tốt.

+0

Không khả dụng trong iOS (chỉ dành cho OSX). – MusiGenesis

+0

@MusiGenesis Liên kết này cho biết cách khác: https://developer.apple.com/library/ios/documentation/cocoa/reference/foundation/Classes/NSNetService_Class/Reference/Reference.html – jjxtra

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