【问题标题】:Peer-to-peer chat with the iPhone与 iPhone 进行点对点聊天
【发布时间】:2011-06-30 09:05:09
【问题描述】:

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

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

【问题讨论】:

  • 你有什么解决办法吗??我正在制作一个类似的应用程序,那么你最终做了什么?

标签: iphone chat bonjour


【解决方案1】:

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

【讨论】:

  • 我正在使用 bonjour 在同一本地网络后面启用聊天,客户端本身充当服务器。但不适用于不同子网的客户端。
【解决方案2】:

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

  1. Bonjour 是否可以在多个子网之间工作?

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

【讨论】:

    【解决方案3】:

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

    Bonjour 可以在 LAN、WAN 甚至 WAN 上运行,但它永远无法在 Internet 上运行。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多