我正在尝试为 OS 我下载了示例服务器/客户端代码。我在我的设备上部署了客户端代码,并在提供的 tomcat 上部署了低级示例代码。作为记录,当我在这里注册推送通知时,我使用 BIS 选项进行了注册。现在我实际上得到了一个黑莓,我被告知它正在使用 BES(我不认为这是我将要描述的问题的根源......)。在设备上,在示例应用程序中,我将收到的电子邮件中给出的所有正确设置都放入其中。我的运行 tomcat 服务器的电脑和我的手机都连接到同一个 wifi。我正在尝试从设备浏览器连接到服务器,例如 https://196.84.32.112:8443/low-level-sample并且浏览器正常打开页面,这意味着我可以从手机连接到我的服务器。现在,当我从设备示例应用程序中点击注册时(我在设置中尝试了两个 BIS/BES 选项),我总是收到以下错误: 注册请求失败。由 java.io.IOException 引起:网络操作 [订阅] 失败。确保内容提供者 URL 可访问。 在日志中我得到: 打开网址:我的服务器网址附加了用户名/密码/型号/连接类型等信息内容提供者网络命令 [订阅] 失败,原因是无法连接到 196.84.32.112:8443命令“注册”失败,错误:java.io.IOException:网络操作[订阅]失败。确保内容提供者 URL 可访问。 一个想法是我应该再次注册新的推送 key 并使用 BIS/BES 选项而不仅仅是 BIS ,但这里的问题似乎是没有与本地服务器的连接,而不是 RIM 服务器。我已经尝试注册了,我正在等待带有新设置的邮件。我也对 BIS/BES 选项有点困惑。我不知道我的用户是否会启用 BIS 或 BES,所以我在代码中放了什么?!在示例应用程序中,它要求我在 BIS 或 BES 之间进行选择,但是当应用程序要投入生产时,我需要以编程方式做出选择,我会选择什么?!或者此选择仅用于应用程序的评估/开发,并且在生产中还有另一台服务器? 最佳答案 我认为这里已经说了所有正确的事情,但我希望我们可以整合一些答案,并结束这个问题。你没有分享你的代码,这让事情变得更加困难,但是很多人使用 RIM/BlackBerry 提供的 PushDemo 源,其中连接后缀被硬编码在 /pushdemo/com/rim/samples/device/push/PushUtils.java 中: private static String getConnectionSuffix() { return ";deviceside=false;ConnectionType=mds-public";}我也是通过阅读 your other question 来猜测这一点的。通过这样做,您已经对 BIBS 的 BlackBerry 传输类型进行了硬编码。 BlackBerry supports many different transports ,如 BES、BIS、BIBS 或 WAP。 BIBS 传输会将请求从您的设备发送到 Internet 上的 BlackBerry 服务器。 (注意:这部分可能会让 iOS/Android 开发人员感到困惑,因为这些平台不提供 Apple/Google 网络中介来中继正常的 HTTP/S 流量)然后,请求被中继到您的服务器,该服务器位于: 196.84.32.112:8443我很确定 TCP/IP 端点在 Internet 上不可用(我无法访问它)。所以,这就是它对你失败的原因。你可以把这个网址 https://196.84.32.112:8443/low-level-sample并将其粘贴到您的 BlackBerry 设备的浏览器中,它将起作用。您的设备配置为 BES,它使用您公司的内部服务器。那些内部服务器 可以 到达 196.84.32.112:8443 端点,所以它似乎对你有用。但是,那是因为您没有像在使用 getConnectionSuffix() 的推送代码中那样对传输进行硬编码。设备浏览器足够聪明,可以找出有效的传输方式,而 BES 可以访问该 Intranet 服务器。希望这可以解释令人困惑的部分。解决方案正如其他人所说,解决方案是让您公司的 IT 人员通过他们的防火墙访问 IP 地址 196.84.32.112 和端口 8443。这将允许黑莓服务器成功访问它。另一种解决方案是更改 PushUtils.java 代码以避免 BIBS 传输: private static String getConnectionSuffix() { return ";deviceside=false";}如果您想要真正灵活的代码,那么我建议重写 PushUtils.java 代码,因为它似乎使用了 5.0 之前的 HTTP 连接逻辑。当支持多种传输时,ConnectionFactory in OS 5.0+ 使这更容易,更健壮......要回答有关通过多种传输支持用户的问题,请查看 this blackberry.com example ,特别是 MyConnectionFactory 类。它允许您选择您的应用允许哪些传输,以及它首先尝试哪些传输。最终,是否公开您的服务器的决定取决于它将如何使用,以及您是否会有非公司 Internet 客户端尝试向您的公司服务器注册。关于blackberry - 通过 BES/BIS , BlackBerry 推送通知,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15947917/
10-13 04:35