FCM 服务器实现
FCM Server Implementation
为了通过XMMP 支持上行和下行消息的服务器端实现,我使用org.jivesoftware.smack.tcp.XMPPTCPConnection。我从 GCM 迁移到 FCM,现在我的应用服务器不再接收任何上游消息。我是否必须更改主机、端口或其他内容才能使用 FCM?
我从 Android 客户端发送的消息如下:
String senderId = ctxt.getResources().getString(com.app.teamchannel.R.string.sender_id);
Map<String,String> data = new HashMap<String,String>();
data.put(GcmConstants.ACTION, GcmConstants.ACTION_CHAT);
data.put(Constants.CHAT_FLAG, Constants.FLAG_NEW_CHAT);
ObjectMapper mapper = new ObjectMapper();
String chatJsonInString = mapper.writeValueAsString(Helper.chatToJson(chat));
data.put(Constants.CHAT_JSON, chatJsonInString);
String receiverJsonInString = mapper.writeValueAsString(Helper.userToJson(receiver));
data.put(Constants.RECEIVER_JSON, receiverJsonInString);
String id = Integer.toString(getNextMsgId(ctxt));
FirebaseMessaging fm = FirebaseMessaging.getInstance();
fm.send(new RemoteMessage.Builder(senderId + "@gcm.googleapis.com").setMessageId(id).setData(data).build());
Log.v(Constants.TAG, "verification message successfully sent: " + GcmConstants.ACTION_CHAT + " -> " + Constants.FLAG_NEW_CHAT);
问题解决了。我把 google-services.json 放在了错误的文件夹中。现在 google 云服务器端点与我的应用程序服务器之间的通信正常了。
为了通过XMMP 支持上行和下行消息的服务器端实现,我使用org.jivesoftware.smack.tcp.XMPPTCPConnection。我从 GCM 迁移到 FCM,现在我的应用服务器不再接收任何上游消息。我是否必须更改主机、端口或其他内容才能使用 FCM?
我从 Android 客户端发送的消息如下:
String senderId = ctxt.getResources().getString(com.app.teamchannel.R.string.sender_id);
Map<String,String> data = new HashMap<String,String>();
data.put(GcmConstants.ACTION, GcmConstants.ACTION_CHAT);
data.put(Constants.CHAT_FLAG, Constants.FLAG_NEW_CHAT);
ObjectMapper mapper = new ObjectMapper();
String chatJsonInString = mapper.writeValueAsString(Helper.chatToJson(chat));
data.put(Constants.CHAT_JSON, chatJsonInString);
String receiverJsonInString = mapper.writeValueAsString(Helper.userToJson(receiver));
data.put(Constants.RECEIVER_JSON, receiverJsonInString);
String id = Integer.toString(getNextMsgId(ctxt));
FirebaseMessaging fm = FirebaseMessaging.getInstance();
fm.send(new RemoteMessage.Builder(senderId + "@gcm.googleapis.com").setMessageId(id).setData(data).build());
Log.v(Constants.TAG, "verification message successfully sent: " + GcmConstants.ACTION_CHAT + " -> " + Constants.FLAG_NEW_CHAT);
问题解决了。我把 google-services.json 放在了错误的文件夹中。现在 google 云服务器端点与我的应用程序服务器之间的通信正常了。