PHP版layim整合融云简单实现

分享 已结 精帖
12 6965
finder
finder VIP2 2017-4-21
悬赏:5飞吻
在fly社区参考了 小小小丶盘子 大神整合的.net版后,在他的程序基础上扣出来一个PHP版。
但是因为我木有授权,而且又发现layim最新版做了很多更新,所以这次就简单实现了下聊天和群聊。
更多功能就等我过阵子拿到授权以后吧,现在无业在家,木有一毛钱的收入啊!!![泪]


体验地址: http://www.m-finder.com/webim
体验帐号:
帐号:Luffy 密码: admin888
帐号:Shanks 密码:admin888
帐号:Buggy 密码:admin888

截图:





代码下载地址: https://github.com/M-finder/Web-IM-mini

注意事项:

1. 融云的对接很简单,但是一定要好好看layui的文档,至少要了解 layui 扩展第三方插件的用法!!!刚看大神分享的代码时,并没有好好看 layui 的这个模块,给自己挖了不少坑。
2. PHP 操作数据库时用了 PDO,如果有报错的话把PHP版本调高一点。
3. 整合用的 layim 3.0.2版,github 上传的代码已去除layim.js,所以下载代码后请把你的 layim.js 拖进 static / layui / lay / modules / 文件夹内,如果你用的是最新版本,那就对应新版本文件夹。
4. 测试时要用两个浏览器登录不同帐号,以便区分用户。
5. 融云好像有个限制,一个帐号只能在一个设备登录,不知道会不会影响测试。





主要流程:

1. 先去layim看文档,有授权的直接用,没授权的买授权
2. 注册融云帐号,创建应用,设置 key 和 secret
3. 下载融云 PHP 版 SDK ,对应程序 class / API 文件夹
4. 看融云的文档
5. 开搞


程序简要说明:

class/url.php 文件判断用户登录状态,没有登录就跳转到登录页面

login.php 提交登录请求到 class/doAction.php?action=login

从数据库获取用户基本信息并保存到 session,(这里本来是做的redis缓存,但是虚拟主机不支持redis,所以就去掉了) 然后再连接融云获取 token 并存入 session,登录成功,跳转到首页

layim 和融云 初始化
//layui引入第三方扩展 

layui.config({
base: 'static/js/' //扩展文件路径
}).extend({
rmlib: 'rmlib', //对应于融云的http(s)://cdn.ronghub.com/RongIMLib-2.2.5.min.js

protobuf: 'protobuf', //对应于融云的http(s)://cdn.ronghub.com/protobuf-2.1.5.min.js

socket: 'socket', //融云的方法和layim的方法封装,主要是各种事件监听

});


//layui使用 im,jq,scoket

layui.use(['layim', 'jquery', 'socket'], function (layim, socket) {

var $ = layui.jquery;
var socket = layui.socket;
var token = $('body').data('token');
var rykey = $('body').data('rykey');

// socket配置。
socket.config({
key: rykey,
token: token,
layim: layim,
});

layim.config({
init: {
url: 'class/doAction.php?action=get_user_data', data: {}
},
……layim配置,可直接从官网复制,各种 on 事件已经转移到了 soeket.js 中
});

socket.js是程序的核心,里边已经写了详细的注释,这里就不多说了,如果实在看不懂的话还请多参考 layim 和融云的文档。
回帖
本帖已设置禁止回复
本周热议
没有相关数据
layui

微信扫码关注 layui 公众号