Laravel通过Guzzel使用LeanCloud实现 实时通信
来源:互联网 发布:sql server删除表 编辑:程序博客网 时间:2024/06/06 20:21
背景:想要通过php在LeanCloud上进行实时通信操作,却找不到指南,只能找到实时通信 REST API 使用指南 ,也就是说,我们需要发向服务器发请求。
推荐使用 guzzel 引入方法:http://guzzle.readthedocs.io/en/latest/overview.html
可以按照链接所示的方法,我使用的是
1、在composer.json 文件里添加
"require": { "guzzlehttp/guzzle": "~6.0"}
2、然后在src目录下,命令行敲击 composer update
具体参考网址。
然后就可以开始使用了.
首先,你可以在你的.env文件中全局设置你的应用KEY
(在leanCloud注册账号-点击右上角-选择控制台-创建应用-应用设置-应用KEY)
LC_APP_ID=xxxxxxLC_APP_KEY=xxxxxxxxLC_APP_MASTER_KEY=xxxxxxx
设置好后,你就可以全局使用了,很方便。
Guzzel文档:http://guzzle.readthedocs.io/en/latest/request-options.html
创建会话:
curl -X POST \
-H “X-LC-Id: NeYR2VTdU9eESWRBeiJhXcjo-gzGzoHsz” \
-H “X-LC-Key: pWwNnm2TKu7qGGoQxBs21mi5” \
-H “Content-Type: application/json” \
-d ‘{“name”:”My Private Room”,”m”: [“SteveJobs”]}’ \
https://api.leancloud.cn/1.1/classes/_Conversation
我们可以看到leanCloud中的文档是这样的,对应的,如果我们需要发创建会话的请求,可以这样做
use GuzzleHttp\Client;//引入
$client = new Client();$response = $client->request('POST', 'https://api.leancloud.cn/1.1/classes/_Conversation', [ 'headers' => [ 'X-LC-Id' => env('LC_APP_ID'), 'X-LC-Key' => env('LC_APP_KEY'), 'Content-Type' => "application/json" ], 'json' => [ 'name'=> "My Private Room", 'm' => ["SteveJobs"] //leanCloud支持一个人创建一个会话,当然也支持多人 ]]);
这样子就创建好一个会话啦!注意-d是用json的形式传过去哦,博主刚开始不是很懂怎么用,网上也找不到相关教程,在这里走了一些弯路。
返回的response是一个比较复杂的结构,而conversation_id在response->location里面,但它是一个类似于
“https://api.leancloud.cn/1.1/classes/_Conversation/582e6dca67f356006339dedb”
如果想要得到conversation_id,可以通过一些字符串的处理(substr(strrchr($response->getHeader(‘Location’)[0],’/’),1);)得到。
再举个添加成员的例子:
添加会话成员:
curl -X PUT \
-H “X-LC-Id: NeYR2VTdU9eESWRBeiJhXcjo-gzGzoHsz” \
-H “X-LC-Key: pWwNnm2TKu7qGGoQxBs21mi5” \
-H “Content-Type: application/json” \
-d ‘{“m”: {“__op”:”AddUnique”,”objects”:[“LarryPage”]}}’ \
https://api.leancloud.cn/1.1/classes/_Conversation/5552c0c6e4b0846760927d5a
use GuzzleHttp\Client;//引入
$conversation_id="5552c0c6e4b0846760927d5a"//以此为例$client = new Client();$response = $client->request('PUT', 'https://api.leancloud.cn/1.1/classes/_Conversation'.$conversation_id, [ 'headers' => [ 'X-LC-Id' => env('LC_APP_ID'), 'X-LC-Key' => env('LC_APP_KEY'), 'Content-Type' => "application/json" ], 'json' => [ 'm' => [ '__op' => "AddUnique", 'm' => ["LarryPage"] ] ]]);
刚开始将两个文档对应可能会比较困难,网上也没有过多的解释,需要不断地尝试,但只要大概了解它是怎么对应起来,那么发guzzel请求应该就不会太难了。
实时通信 REST API 使用指南
Guzzel文档
希望本blog可以帮你开个好头,不用像我一样走那么多弯路。
- Laravel通过Guzzel使用LeanCloud实现 实时通信
- LeanCloud Android 实时通信服务 搭建聊天
- 使用Oracle实现实时通信
- 使用Oracle实现实时通信
- 通过WebRTC实现实时视频通信(一)
- 通过WebRTC实现实时视频通信(二)
- 通过WebRTC实现实时视频通信(三)
- 通过 SignalR 类库,实现 ASP.NET MVC 的实时通信
- 通过WebRTC实现实时视频通信(一)
- 使用微软的实时通信API实现客户端通信
- php实现实时通信
- Nanopc 使用mumble实现实时语音通信功能
- 通过Gulp使用Browsersync实现浏览器实时响应文件更改
- 微信小程序 使用LeanCloud
- 一起疯狂使用 LeanCloud
- 使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置)
- 实时语音通信的实现
- 实时语音通信的实现
- SecureCRT 端口转发连接服务器
- QAQ的幸运数字
- 卸载apk时的另外一个AssetManager对象分析
- UVa 11526 - H(n)
- 四旋翼之代码逻辑
- Laravel通过Guzzel使用LeanCloud实现 实时通信
- MySQL study之主从复制--半同步复制
- CUDA教程之——共享存储器(2)-矩阵与自身转置相乘
- 浅谈Socket通信
- 数列排序
- AndroidStudio断点调试和高级调试(一)
- matplotlib之pyplot中ylabel和xlabel方法详解
- 我读SSD
- 第十周 项目3-利用二叉树遍历思想解决问题