【问题标题】:Why android GCM server gives a timeout after some subsequent GCM request为什么android GCM服务器在一些后续GCM请求后会超时
【发布时间】:2015-05-14 16:25:13
【问题描述】:

我的服务器向 GCM api 发送 GCM 请求以获取推送通知。推送通知适用于一些推送通知,之后发出请求的 curl 函数因以下错误而超时

“Curl 失败:连接 android.googleapis.com 端口 443 失败:连接超时”

没有任何响应。但是响应码是200Ok。

但过了一段时间,如果我再次尝试,它会发送带有正确成功响应的通知,如果我尝试发送一段时间,它会再次挂起并显示上述消息。

我在防火墙上打开了端口 5228、5229 和 5230。

为什么会这样。我不知道为什么会这样。

这是我正在使用的代码

$headers = array( 
    'Authorization: key=' . $this->serverApiKey,
    'Content-Type: application/json'
);
// Open connection
$ch = curl_init();

// Set the url, number of POST vars, POST data
curl_setopt( $ch, CURLOPT_URL, $this->url );
curl_setopt($ch, CURLOPT_PORT, 443);
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );

curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode( $fields ) );

// Avoids problem with https certificate
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false);

// Execute post
$result = curl_exec($ch);

请帮我找到解决办法。

【问题讨论】:

    标签: php android curl google-cloud-messaging


    【解决方案1】:

    这似乎更像是防火墙/代理服务器问题。确保您的服务器中打开了端口 443。使用 ping 和 curl 命令来验证这一点。

    请参阅此Stack Overflow 问题以获取更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      • 1970-01-01
      • 2012-10-05
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      相关资源
      最近更新 更多