Laravel 5.1 GCM 推送通知 SSL 错误
Posted
技术标签:
【中文标题】Laravel 5.1 GCM 推送通知 SSL 错误【英文标题】:Laravel 5.1 GCM Push notification SSL error 【发布时间】:2016-12-16 15:54:22 【问题描述】:我已通过\Zend\Http\
客户端将GCM
与laravel 5.1
PushNotification 连接起来。
它工作得很好。但突然它停止工作并产生一些exceptions
。
我的代码就像...
$collection = PushNotification::app('appNameandroid')->to ( $deviceToken );
$collection->adapter->setAdapterParameters(['sslverifypeer' => false]);
$collection->send ( $message );
我也尝试了以下代码,但它们都不起作用...
$collection = PushNotification::app('appNameAndroid')->to ( $deviceToken );
$new_client = new \Zend\Http\Client(null, array(
'adapter' => 'Zend\Http\Client\Adapter\Socket',
'sslverifypeer' => false
));
$collection->adapter->setHttpClient($new_client);
$collection->send ( $message );
----------------------------and-----------------------------------
$collection = PushNotification::app('appNameAndroid')->to ( $deviceToken );
$collection->adapter->setAdapterParameters(array(
'ssl'=>array(
'verify_peer' => false,
'verify_peer_name' => false)
));
$collection->send ( $message );
例外是......
exception 'ErrorException' with message 'stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:14077102:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol' in C:\xampp\htdocs\activ8-webapp\api\vendor\zendframework\zend-http\src\Client\Adapter\Socket.php:281
Next exception 'Zend\Http\Client\Adapter\Exception\RuntimeException' with message 'Unable to enable crypto on TCP connection gcm-http.googleapis.com' in C:\xampp\htdocs\activ8-webapp\api\vendor\zendframework\zend-http\src\Client\Adapter\Socket.php:308
【问题讨论】:
【参考方案1】:基于此thread,如果您的证书不匹配,它将因该错误而失败。修复您的 SSL 配置,因为这不是 PHP 的错。如果您要连接的服务器的 SSL 配置不正确,您将收到类似这样的错误。尝试用好的证书替换无效、配置错误或自签名的证书。您可以通过SMTPOptions
属性允许不安全的连接。在早期版本中,subclassing the SMTP class 可以做到这一点,但不建议这样做。也尝试将app/config/email.php
:smtp
更改为mail
在此link 上找到示例代码 sn-p:
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
您也可以查看这个相关链接:
how to fix stream_socket_enable_crypto(): SSL operation failed with code 1 Laravel SMTP driver with TLS encryption希望这会有所帮助!
【讨论】:
我这里没有使用phpmail,请看我的问题。在我的情况下,我也尝试过,但工作正常。以上是关于Laravel 5.1 GCM 推送通知 SSL 错误的主要内容,如果未能解决你的问题,请参考以下文章