【问题标题】:grpc push notifcation example in javajava中的grpc推送通知示例
【发布时间】:2018-12-19 15:44:01
【问题描述】:

我想知道是否有一个很好的教程来解释在 Java 中使用 gRPC 的推送通知系统。我找到了一个使用 go 的示例,但我想知道为什么这个主题中没有这么多示例。

【问题讨论】:

    标签: push-notification grpc grpc-java


    【解决方案1】:

    您要查找的内容称为“服务器端流”,您可以在官方Getting Started docs for Java 中了解它。

    基本上你应该像这样定义你的 proto 文件:

    service PushNotifier {
      // A server-to-client streaming RPC.
      rpc Listen(google.protobuf.Empty) returns (stream PushNotification) {}
    
    message PushNotification {
      string payload = 1
    }
    

    您可以找到示例here。具体来说,查看routeguide 示例,它显示了 4 种不同类型的 gRPC 通信。

    【讨论】:

    • 感谢您的回复。是的,这就是解决方案。我还有一个问题。当我们有多个客户端(即多个观察者)时,我们需要将观察者对象(在服务器端)存储在像 hashmap 这样的数据结构中,以便为其对应的客户端调用 onNext 函数,对吗?有没有更好的解决方案?
    • 是的,这是正确的,一旦客户端与服务器断开连接,请确保更新地图并删除 StreamObserver。可能有一个我现在想不出的更好的选择,但是您需要考虑的是,只要客户端连接到您的服务器,StreamObserver 就有效。例如,在 Android 上,您将需要一个运行的前台服务(带有通知)以在用户离开应用程序时保持连接处于活动状态。大多数用户不会喜欢这个。更好的选择是在您想要“唤醒”应用程序时使用 FCM。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 2018-08-01
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 2013-04-29
    相关资源
    最近更新 更多