【问题标题】:Send JSon from Server to Client in GCM在 GCM 中将 JSON 从服务器发送到客户端
【发布时间】:2013-09-04 11:50:22
【问题描述】:

我正在使用 GCM(谷歌云消息传递)。我想要从服务器端发送 J Son。在客户端我想接收我已经完成的简单消息,但我被困住了我怎么能将 J Son 从服务器端传递到客户端。

请帮我解决这个问题。

这是我的服务器端代码

 public class GCMBroadcast extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private static final String SENDER_ID = "";
    private static final String ANDROID_DEVICE = "";
    private List<String> androidTargets = new ArrayList<String>();
    public GCMBroadcast() {

        super();
        androidTargets.add(ANDROID_DEVICE);

    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String collapseKey = "";
        String userMessage = "";

        try {
            userMessage = request.getParameter("Message");
            collapseKey = request.getParameter("CollapseKey");
        } catch (Exception e) {
            e.printStackTrace();
            return;
        }
        Sender sender = new Sender(SENDER_ID);
        Message message = new Message.Builder()


        .collapseKey(collapseKey)
        .addData("message", userMessage)
        .build();

        try {

            MulticastResult result = sender.send(message, androidTargets, 1);
            System.out.println("Response: " + result.getResults().toString());
            if (result.getResults() != null) {

                int canonicalRegId = result.getCanonicalIds();
                if (canonicalRegId != 0) {
                    System.out.println("response " +canonicalRegId );
                }
            } else {
                int error = result.getFailure();
                System.out.println("Broadcast failure: " + error);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }


        request.setAttribute("CollapseKey", collapseKey);
        request.setAttribute("Message", userMessage);

        request.getRequestDispatcher("XX.jsp").forward(request, response);

    }

}

【问题讨论】:

    标签: google-app-engine google-cloud-messaging


    【解决方案1】:

    您的负载(通过调用addData 添加到Message)只能是名称/值对。如果要发送JSON,可以将JSON 字符串放在此类名称/值对的值中。然后你必须在客户端自己解析JSON

    例如:

    .addData("message","{\"some_json_key\":\"some_json_value\"}")

    【讨论】:

      猜你喜欢
      • 2013-11-16
      • 1970-01-01
      • 2014-12-27
      • 1970-01-01
      • 2021-02-15
      • 1970-01-01
      • 1970-01-01
      • 2015-05-02
      • 1970-01-01
      相关资源
      最近更新 更多