介绍
在进行app开发过程中,会经常用到消息推送。对于创业型的公司如果自己去搭建消息推送服务器,时间成本,以及技术难度无疑都会增加很多。在我自己的实践过程中,觉得百度的消息推送服务稳定性整体来说是很高的,而且接口文档也很完善,推荐使用。
* 文中消息推送服务使用百度消息推送 sdk 3.0.0版本
* laravel版本是:5.1.*
* php>5.5.9
项目 项目地址 : baidu-pusher
为了便于多个项目中使用百度的消息推送,因此将百度消息推送封装成为了composer包。通过简单的安装,即可使用。
1.安装 在项目中的composer.json中添加如下内容
require: { riverslei/baidu-pusher: ~1.0 },
然后执行 composer update
2.安装完成后,配置 config\app.php 中的 providers 数组及 aliases 数组。
'providers' => [ /* * 第三方提供者 */ riverslei\pusher\pusherserviceprovider::class, ], 'providers' => [ /* * 第三方 */ 'pusher' => riverslei\pusher\pusher::class, ],
以上配置完成后,使用一下命令生成推送的配置文件
php artisan vendor:publish --provider=riverslei\pusher\pusherserviceprovider
执行该命令后,在 config 文件夹中会增加一个配置文件 pusher.php 。可以打开查看相关的配置信息。修改为自己的apikey及其他内容。
其中默认内容是用于测试的账号的。
3.测试sdk
之前百度一直没有提供服务端的测试代码,一直不能进行独立测试。这一次sdk升级后,终于弄了一个测试账号了。大家可以试试看。以下是我根据官方的测试代码,写的符合laravel的测试代码。
首先,配置路由
route::get('/pusher', 'testcontroller@pusher');
其次,创建该控制器及方法
'hi!.', // 消息内容 'description' => hello!, this message from baidu push service. ); // 设置消息类型为 通知类型. $opts = array ( 'msg_type' => 1 ); // 向目标设备发送一条消息 $rs = pusher::pushmsgtosingledevice($channelid, $message, $opts); // 判断返回值,当发送失败时, $rs的结果为false, 可以通过geterror来获得错误信息. if($rs === false){ print_r(pusher::getlasterrorcode()); print_r(pusher::getlasterrormsg()); }else{ // 将打印出消息的id,发送时间等相关信息. var_dump($rs); } echo done!; }}
完成后,在浏览器中访问: http://youdomain/pusher。 查看浏览器中的内容
出现该内容,表示已经成功了。可以在适当的位置进行使用。
其他 在项目中使用消息推送时,建议将推送业务放入队列中,不要在业务中等待消息推送完成再返回结果给app。关于 laravle消息队列的使用 请参考这一篇文章。
在使用过程中,消息推送的接口请参考 百度消息推送文档
如果你觉得该项目不错,欢迎start, 项目地址
后续关于使用laravel开发app接口的文章,将不断更新。谢谢大家关注。
版权声明:本文为博主原创文章,未经博主允许不得转载。