我正在尝试为iPhone编写一个简单的聊天应用程序(作为一个实验)。有两种设备可以简单地发现彼此的IP地址,并且地址是否有一个简单的API或协议,可以让我来回发送短信?如何在iPhone应用程序中进行点对点通讯?
我已经研究过SIP(特别是索非亚和eXosip),但这些工具作为C库存在,并且超出了我目前的将它们移植到iPhone的能力。
更新:我试图通过互联网连接两个设备(即不是通过蓝牙或本地无线网络,这是GameKit
所做的)。
我正在尝试为iPhone编写一个简单的聊天应用程序(作为一个实验)。有两种设备可以简单地发现彼此的IP地址,并且地址是否有一个简单的API或协议,可以让我来回发送短信?如何在iPhone应用程序中进行点对点通讯?
我已经研究过SIP(特别是索非亚和eXosip),但这些工具作为C库存在,并且超出了我目前的将它们移植到iPhone的能力。
更新:我试图通过互联网连接两个设备(即不是通过蓝牙或本地无线网络,这是GameKit
所做的)。
你会需要它提供的媒人服务的服务器。 Game Center使这非常容易,但您的用户将不得不拥有Game Center帐户。
或者,您可以设置XMPP(以前称为Jabber,它是Google Chat的功能)服务器(我从来没有这样做,但有几种可用)并使用XMPP Framework for Cocoa。有关于在iPhone应用程序中使用它的说明here。
我确定还有其他聊天服务器和客户端源也可用。想到IRC and Mobile Colloquy。
最后,您可以使用您最喜欢的服务器语言/框架编写自己的服务器。这并不难(我自己做过),但这与我所说的简单不同,我不会将它用于生产系统。
+1伟大的XMPP链接 - 我喜欢与工作代码示例的链接。不幸的是,我实际上正在尝试使用SIP/RTP--我首先专注于聊天,以便让网络内容不必担心音频或视频问题。你碰巧有任何有用的iPhone/VoIP链接? – MusiGenesis 2010-10-12 01:41:29
另外,再次感谢XMPP链接。 XMPP将完美适用于我必须编写的另一个方面。 – MusiGenesis 2010-10-12 01:42:16
我简短地看了一下SIP,但并没有走得很远。这是一段时间以前,所以现在可能会有更多。 – 2010-10-12 03:45:13
GameKit中正是支持这种特殊的对等网络。有看的GameKit文档下半年细节:
我读过的关于'GameKit'的一切都表明,点对点的东西只能通过蓝牙或本地无线工作,而不能通过互联网。但我当然不确定。 – MusiGenesis 2010-10-11 22:06:02
NSNetService是一个不错的选择。
不适用于iOS(仅限OSX)。 – MusiGenesis 2013-10-25 19:05:03
@MusiGenesis此链接指示:https://developer.apple.com/library/ios/documentation/cocoa/reference/foundation/Classes/NSNetService_Class/Reference/Reference.html – jjxtra 2013-10-25 19:38:42
看看WebRTC Datachannels。 WebRTC是一个较新的选项,native iOS support是一个仍在定案的标准,但它更灵活,如果iOS应用程序需要与browser甚至android对等通信
您应该澄清设备是否在同一个LAN上或通过互联网连接。 – 2010-10-11 21:37:29
@Robot K:同意了,完成了。 – MusiGenesis 2010-10-11 22:01:23