我已成功使用 JAXL 将数据从 php 服务器页面发送到 android 客户端。
我已经仔细阅读了谷歌云消息官方网站的指南。对于上游只有这些文件:
public void onClick(final View view) {
if (view == findViewById(R.id.send)) {
new AsyncTask() {
@Override
protected String doInBackground(Void... params) {
String msg = "";
try {
Bundle data = new Bundle();
data.putString("my_message", "Hello World");
data.putString("my_action","SAY_HELLO");
String id = Integer.toString(msgId.incrementAndGet());
gcm.send(SENDER_ID + "@gcm.googleapis.com", id, data);
msg = "Sent message";
} catch (IOException ex) {
msg = "Error :" + ex.getMessage();
}
return msg;
}
@Override
protected void onPostExecute(String msg) {
mDisplay.append(msg + "\n");
}
}.execute(null, null, null);
} else if (view == findViewById(R.id.clear)) {
mDisplay.setText("");
}
}
说这个:
在应用服务器上接收 XMPP 消息
When GCM receives an upstream messaging call from a client app, it generates the necessary XMPP stanza for sending the upstream message.
GCM 添加 category 和 from 字段,然后向应用服务器发送如下所示的节:
<message id="">
<gcm xmlns="google:mobile:data">
{
"category":"com.example.yourapp", // to know which app sent it
"data":
{
"hello":"world",
},
"message_id":"m-123",
"from":"REGID"
}
</gcm>
</message>
但是现在我有一些问题,因为上游的文件有限。
1-)Android发送JSON数据,发送者ID用于上游......但是当我注册到api时,没有被问到应用服务器。发件人 ID 用包识别我的 gmail 帐户的应用程序。不是应用服务器。那么gcm在哪里发送来自客户端的数据?GCM 如何知道我的应用服务器..
2-)我的预算有限,我的服务器是共享帐户网络服务器。所以我必须使用php...但是我已经阅读了文档“您的应用服务器应该是持久连接”而不是定期连接和断开连接...我可以将应用服务器用作php吗?那个 GCM 连接 Php 脚本来评估数据并响应 android 客户端?