LayIM接入案例Java篇

提问 未结 精帖 143 36009
小海
小海 2016-7-7
悬赏:5飞吻
Anything, Please feel free to let me know. QQ:1548638692
【1】酷爱即时聊天工具,加之巧遇研发电商平台,为此研发了一套客服系统(isay)

【2】平台级IM最新版本截图:

更多细节与体验@me 1548638692
首先做个自我介绍,本人大学毕业两年,前两年都在花旗银行工作。银行大家都懂的,根本学不新到技术。so...技术不大好。但我有上进心[太开心] 哈哈,
用java集成了LayIM,基本功能都实现了

<1>离线消息接收(好友离线消息以及群组离线消息)
<2>1-1发送消息(文字,图片,文件)
<3> 群组消息(文字,图片,文件)
<4>聊天记录查询(好友聊天记录以及群聊天记录)
<5>群组管理(群主可以添加好用到群 群成员可以退出群).....
<6>用户im状态监督(离线后,别人发送消息,会提示对方你已离线)
下面将实例展示给大家,不许偷笑哈,有什么问题我们可以一起探讨!
平台服务端用的框架是springmvc,总的来说,java集成layIm并不难,废话不多说。

1.初始化界面(加载成员列表,初始化群组,接收离线消息)

列表中的用户全是系统用户,由于本系统中存在角色,所以用角色名称当做组名称。(注意本系统只需要把所有用户查出来即可,默认所有人都已成为好友,是不是简单了很多啊[偷笑] ,但这是一个坑,可能以后会改[衰]
初始化代码片段(socket)
var etiger = {};
etiger.socket = {
webSocket:"",

init:function(){
if (!window.WebSocket){
alert("你的浏览器不支持websocket,请升级到IE10以上浏览器,或者使用谷歌、火狐、360浏览器。");
}
webSocket = new WebSocket(wsServer);
webSocket.onerror = function(event) {
alert("websockt连接发生错误,请刷新页面重试!")
};

webSocket.onopen = function(event) {
// webSocket.send("_online_user_"+currentId);
};
webSocket.onmessage = function(event) {
var data = event.data;
console.log("lg:"+JSON.stringify(data));
if(data.indexOf("_online_all_status_")>=0){
}

if(data.indexOf('_sys_')>=0){//系统通知
return;
}
if(data.indexOf('_msg_')>=0){
//0.mine 1.type 2.id 3.name 4.avatar 5. content
//聊天信息
var arra = data.split("_msg_");
var mine = arra[0];
var type = arra[1];
var id = arra[2];
var name = arra[3];
var avatar = arra[4];
var content = arra[5];
layim.getMessage({
username: name
,avatar: avatar
,id: mine
,type: type
,content: content
});
};
}
},
send:function(data){
this.waitForConnection(function () {//连接建立才能发送消息
webSocket.send(data);
}, 500);
}
,
sendData:function(data){
this.waitForConnection(function () {
webSocket.send(data);
}, 500);
},

waitForConnection : function (callback, interval) {//判断连接是否建立

if (webSocket.readyState === 1) {
callback();
} else {
var that = this;
setTimeout(function () {
that.waitForConnection(callback, interval);
}, interval);
}
}
};

//初始化websocket by侯艳海
etiger.socket.init();
//获取离线消息 by侯艳海
etiger.socket.sendData("_online_user_"+currentId);
2.群组管理
本系统存在用户组管理模块,恰好与im结合,用户组即为群组,谁创建的谁为管理员! 群管理员可以删除群,同时可以删除群成员。
注:每个人只能修改自己所创建的群组

3.添加成员,退出群


4.发送文件,图片

5.个性签名修改,头像修改

6.查看聊天记录




我要下班了。。。。有事留言,明个继续哈
回帖
  • hongzai
    2016-7-8
    原生的要java7以上才能支持吧,能把源码共享我一份吗?
    1 回复
  • 泠三令
    2016-7-7
    高大上的 JAVA ,妈蛋,不会玩。。。。 [挖鼻]
    0 回复
  • 绿茶
    2016-7-7
    正准备申请,不然会JAVA玩不成
    0 回复
  • Warn
    2016-7-7
    [威武] 确实高大上
    0 回复
  • 谢谢分享。。。
    0 回复
  • xyz
    2016-7-8
    请求 你java后台的 websocket协议接入是使用什么? 原生的socket?还是其他框架
    0 回复
  • 小海
    2016-7-8
    @xyz 原生的websocket --javax.websocket
    0 回复
  • 小海
    2016-7-8
    @hongzai 是的,要在java7以上! websocket的相关代码我可以共享
    0 回复
  • hongzai
    2016-7-8
    @小海 772057239@qq.com, 共享一份给我吧,谢谢。我用java6+tocmat7试试。
    0 回复
  • 小海
    2016-7-8
    @hongzai 加qq吧1548638692
    0 回复
本帖已设置禁止回复