与iPhone进行点对点聊天

时间:2011-06-30 09:05:09

标签: iphone chat bonjour

我知道基于搜索StackOverflow已经有多少次询问了这个问题,但我仍然希望有人能告诉我我是不是错了......

我正在为iPhone创建一个点对点聊天应用程序。我最初的想法是避免使用服务器,所以Bonjour浮现在脑海中。我很高兴编写了很长一段时间并实现了许多花哨的功能,但两天前我开始使用来自不同子网的两个客户端进行测试,发现客户端无法相互连接!我突然意识到Bonjour适用于本地网络,并且DNS服务器是广域服务广播所必需的。我真的需要一台服务器进行互联网点对点聊天吗?是否还有其他选项不涉及在iOS平台上使用服务器?

3 个答案:

答案 0 :(得分:1)

我想知道如何在不使用服务器的情况下进行聊天应用。有很多便宜的解决方案,亚马逊有自己的服务,谷歌也有。你可以先试试,甚至不用付一分钱。

答案 1 :(得分:1)

我在Apple开发者指南中找到了以下内容。这应该回答你的问题 -

  1. Bonjour是否在多个子网之间工作?
  2. 是。 Mac OS X的第一个DNS服务发现(DNS-SD)版本集中在单链路网络的多播DNS(mDNS)上,因为这是IP软件最糟糕的环境。从Mac OS X 10.4开始,Bonjour现在使用动态DNS更新(RFC 2316)和单播DNS查询来启用广域服务发现。

答案 2 :(得分:1)

要回答这个问题,唯一的方法是携带所有可能参与者的列表及其当前的IP地址,并为每个可能的参与者在每次IP地址更改时向所有其他参与者报告。因此,如果您有100个可能的参与者,那么当您的IP地址发生变化时,您必须告诉其他99个其他人,并且那些99必须告诉您他们的IP地址何时发生变化。

Bonjour可以在局域网,广域网甚至广域网上运行,但它永远无法在互联网上运行。

服务器的作用是使每个端点只需要在更改时告诉一个端点(服务器)。我的建议是获得一个廉价的互联网主机,具有基本的PHP / MySQL功能,并为自己写一个非常简单的脚本来发布和获取用户身份。