0

我需要 Pusher 上的私人频道,以便让一堆 Android 客户端能够相互通信。Pusher 是推荐给我的,虽然它真的很复杂。我已经多次阅读所有文档,所以我希望有人(Leggette 先生?)可以帮助我。

我已经在客户端上安装了 Pusher Android JAR,并且能够订阅我从“事件创建器”触发的公共频道(非常整洁),但是为了让私人频道正常工作,为了触发事件,我需要这个:

HttpAuthorizer authorizer = new HttpAuthorizer("http://example.com/some_auth_endpoint");
PusherOptions options = new PusherOptions().setAuthorizer(authorizer);
Pusher pusher = new Pusher( YOUR_APP_KEY, options );

根据http://pusher.com/docs/authenticating_users, HttpAuthorizer() 需要一个指向应用服务器的 URL,该应用服务器将使用 JSON 身份验证令牌进行响应。我是否必须设置自己的应用服务器来提供身份验证,例如https://raw.github.com/pusher/pusher-android-example/master/src/com/pusher/android/example/MainActivity 中的示例。 java,或者 Pusher 可以提供这个吗?这似乎是 Pusher 应该提供的东西。

在我的应用程序的 Ruby 服务器代码示例中(为什么没有 Java?)我看到了这个:Pusher.url = "http://{key}:{secret}@api.pusherapp.com/apps/{app_id}". 但是,此 URL 不存在。我在 HttpAuthorizer() 中尝试了它并得到了 java.io.FileNotFoundException。(我刚刚在设置下找到了“启用客户端事件”复选框 - 检查它没有帮助,但我猜这是一个重要的步骤。)

如果我必须设置自己的应用服务器进行身份验证,我想将 Java 与 GAE 一起使用。http://pusher.com/docs/authenticating_users#implementing_private_endpoints有一个 Python/GAE 示例,但没有 Java,我不知道 Python。有这方面的图书馆吗?https://github.com/marcbaechinger/gae-java-libpusher#会成功吗?似乎不会。

4

1 回答 1

3

令牌。我是否必须设置自己的应用服务器来提供身份验证,例如https://raw.github.com/pusher/pusher-android-example/master/src/com/pusher/android/example/MainActivity 中的示例。 java,或者 Pusher 可以提供这个吗?

您需要设置自己的身份验证服务器。这样做的目的是允许对订阅进行身份验证。这意味着您可以以您认为合适的任何方式对用户进行身份验证,针对您可能使用的任何现有或新的身份验证机制,例如用户会话(更适用于 Web 应用程序)或您自己的应用程序在初始连接时可能提供的身份验证令牌(通过一些用户名/密码登录到您的系统)。

在我的应用程序的 Ruby 服务器代码示例中(为什么没有 Java?)我看到:Pusher.url = "http://{key}:{secret}@api.pusherapp.com/apps/{app_id}" . 但是,此 URL 不存在。

有一个 Java 服务器库,但 Pusher 不直接维护它。这是一个社区贡献的。

我不确定你从哪里得到的 URL。也许来自Web API参考,但除非您正在编写自己的 Pusher Web API 库,否则我不希望您直接使用该 URL。对于这类事情,有 Pusher 和贡献的辅助库。

如果我必须设置自己的应用服务器进行身份验证,我想将 Java 与 GAE 一起使用。http://pusher.com/docs/authenticating_users#implementing_private_endpoints有一个 Python/GAE 示例,但没有 Java,我不知道 Python。有这方面的图书馆吗?https://github.com/marcbaechinger/gae-java-libpusher#会成功吗?

是的,您需要设置自己的身份验证服务器。您可以创建一个客户端授权方,但这意味着app_secret在客户端代码中公开您的代码——您不应该这样做。

该类PusherUtil提供了许多帮助方法,您可以使用这些方法将订阅身份验证支持添加到库中。但是 - 你是对的 - 它似乎没有提供这个功能。

Pusher Play 模块(也是 Java)似乎有适当的方法,因此可以移植。请参阅: https ://github.com/regisbamba/Play-Pusher#generating-the-authentication-string

我不再为 Pusher 工作,但我很乐意为改进的 Java 库做出贡献。

于 2013-07-10T09:08:39.477 回答