Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法连接到Google云连接服务器_Php_Android_Push Notification_Xmpp_Google Cloud Messaging - Fatal编程技术网

Php 无法连接到Google云连接服务器

Php 无法连接到Google云连接服务器,php,android,push-notification,xmpp,google-cloud-messaging,Php,Android,Push Notification,Xmpp,Google Cloud Messaging,我正试图在我的服务器和谷歌云连接服务器(CCS)之间打开XMPP连接,但它不起作用。我正在使用PHP和JAXL库编程。这是我的密码: <?php include_once 'jaxl.php'; $client = new JAXL(array( 'jid'=>'<my_sender_ID>@gcm.googleapis.com', 'pass'=>'my_API_key', 'auth_type'=>'PLAIN',

我正试图在我的服务器和谷歌云连接服务器(CCS)之间打开XMPP连接,但它不起作用。我正在使用PHP和JAXL库编程。这是我的密码:

<?php
include_once 'jaxl.php';

$client = new JAXL(array(
     'jid'=>'<my_sender_ID>@gcm.googleapis.com',
     'pass'=>'my_API_key',
     'auth_type'=>'PLAIN',
     'host' => 'gcm.googleapis.com',
     'port' => '5235',
     'force_tls' => true
)); 
$client->start();
echo "done";
?>

我做错了什么?

也许你应该将
主机更改为http://gcm.googleapis.com。您的错误为“无法连接tcp://gcm.googleapis.com:5235”

GCM云连接服务器(CCS)是一个XMPP端点,运行在端口5235上


您应该通过ssl而不是http或tcp连接到gcm.googleapis.com

我通过从以下位置修改jaxl.php修复了此问题:

public function get_socket_path() {
    return ($this->cfg['port'] == 5223 ? "ssl" : "tcp")."://".$this->cfg['host'].":".$this->cfg['port'];
}
致:

之后,您可以使用以下命令初始化客户端:

$client = new JAXL(array(
    'jid' => '<your-API-key>@gcm.googleapis.com',
    'pass' => '<your-API-key>',
    'host' => 'gcm.googleapis.com',
    'port' => 5235,
    'force_tls' => true,
    'auth_type' => 'PLAIN',
    'strict' => FALSE,
    'ssl' => TRUE
));
$client=新的JAXL(数组)(
'jid'=>'@gcm.googleapis.com',
'通过'=>'',
“主机”=>“gcm.googleapis.com”,
“端口”=>5235,
“force_tls”=>正确,
'auth_type'=>'PLAIN',
“严格”=>错误,
“ssl”=>TRUE
));

此外,初始化客户端时,请使用

'log_level' => JAXL_DEBUG
这将允许您查看发送或接收的所有内容。在我的例子中,我发现我的项目还没有被列入白名单——我忘了在上注册它

jaxl\u socket\u客户端:189-2013-10-04 08:11:58-项目101234379870未列入白名单。

从纯网络的角度来看,
连接超时
通常意味着连接问题,因此我会检查PING和防火墙,并可能使用NMAP查看端口5235是否可访问。在我尝试执行相同操作时,请您提供代码。我用java制作了一个CCSServer,但我想转而使用php。我什么都试过了,请帮帮我。
$client = new JAXL(array(
    'jid' => '<your-API-key>@gcm.googleapis.com',
    'pass' => '<your-API-key>',
    'host' => 'gcm.googleapis.com',
    'port' => 5235,
    'force_tls' => true,
    'auth_type' => 'PLAIN',
    'strict' => FALSE,
    'ssl' => TRUE
));
'log_level' => JAXL_DEBUG
jaxl_socket_client:189 - 2013-10-04 08:11:58 - <failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><temporary-auth-failure/><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Project 1012343798740 not whitelisted.</text></failure>