config.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. //layim聊天组件start
  2. //请将这个ip地址修改为本机ip地址
  3. //websocket 配置
  4. //动态配置Ip为当前服务器
  5. var chatIp = document.location.host;
  6. var id = "";
  7. jQuery.post("chat/imController.do?getUserid", {
  8. }, function (text) {
  9. id = text.substring(1,text.length-1);
  10. });
  11. if(!/^http(s*):\/\//.test(location.href)){
  12. alert('请部署到localhost上查看该演示');
  13. }
  14. //update-begin--author:dangzhenghui Date:20170620 for:TASK #2160 【兼容】在线聊天插件,判断IE不支持websocet给try掉,不集成插件功能
  15. if (typeof WebSocket != 'undefined') {
  16. layui.use('layim', function(layim){
  17. // //建立WebSocket通讯
  18. var socket = new WebSocket("ws://"+chatIp+"/jeecg/WebSocket/"+id);
  19. //基础配置
  20. layim.config({
  21. msgbox: layui.cache.dir + 'css/modules/layim/html/msgbox.html',
  22. //初始化接口
  23. init: {
  24. //url: '$!{basePath}/content/chat/demo/json/getList.json'
  25. url: 'chat/imController.do?getUsers'
  26. ,data: {}
  27. }
  28. //简约模式(不显示主面板)
  29. //,brief: true
  30. //查看群员接口
  31. ,members: {
  32. url: 'chat/imController.do?getMembers'
  33. ,data: {}
  34. }
  35. //update-begin--author:zhangjiaqiang Date:20161031 for:在线聊天(图片、文件、聊天记录)功能的实现
  36. ,uploadImage: {
  37. url: 'chat/imController.do?uploadImage' //(返回的数据格式见下文)
  38. ,type: 'post' //默认post
  39. }
  40. ,uploadFile: {
  41. url: 'chat/imController.do?uploadFile' //(返回的数据格式见下文)
  42. ,type: '' //默认post
  43. }
  44. //,skin: ['http://cdn.firstlinkapp.com/upload/2016_4/1461747766565_14690.jpg'] //皮肤
  45. ,brief:true
  46. ,title:"在线聊天"
  47. ,maxLength:3000
  48. ,right:'0px'
  49. ,brief:false
  50. ,isAudio:true
  51. ,isVideo:true
  52. ,isgroup: true //是否开启群组
  53. ,chatLog: 'chat/chatMessageHistory.do?from='+id //聊天记录地址
  54. //update-end--author:zhangjiaqiang Date:20161031 for:在线聊天(图片、文件、聊天记录)功能的实现
  55. ,find: './demo/find.html'
  56. ,copyright: true //是否授权
  57. });
  58. //监听发送消息
  59. layim.on('sendMessage', function(data){
  60. console.log(data);
  61. //更多情况下,一般是传递一个对象
  62. socket.send(JSON.stringify(data));
  63. });
  64. //连接成功时触发
  65. socket.onopen = function(){
  66. //socket.send('XXX连接成功');
  67. };
  68. //监听收到的消息
  69. socket.onmessage = function(res){
  70. var message = JSON.parse(res.data);
  71. var timestamp = new Date().getTime();
  72. console.log(message);
  73. if(message.to.type=="group"){
  74. layim.getMessage({
  75. username: message.mine.username //消息来源用户名
  76. ,avatar: message.mine.avatar//消息来源用户头像
  77. ,id: message.to.id //聊天窗口来源ID(如果是私聊,则是用户id,如果是群聊,则是群组id)
  78. ,type: message.to.type //聊天窗口来源类型,从发送消息传递的to里面获取
  79. ,content: message.mine.content //消息内容
  80. ,timestamp: timestamp //服务端动态时间戳
  81. });
  82. }else {
  83. layim.getMessage({
  84. username: message.mine.username //消息来源用户名
  85. ,avatar: message.mine.avatar//消息来源用户头像
  86. ,id: message.mine.id //聊天窗口来源ID(如果是私聊,则是用户id,如果是群聊,则是群组id)
  87. ,type: message.to.type //聊天窗口来源类型,从发送消息传递的to里面获取
  88. ,content: message.mine.content //消息内容
  89. ,timestamp: timestamp //服务端动态时间戳
  90. });
  91. }
  92. };
  93. //监听在线状态的切换事件
  94. layim.on('online', function(data){
  95. console.log(data);
  96. });
  97. //监听查看群员
  98. layim.on('members', function(data){
  99. console.log(data);
  100. });
  101. //监听聊天窗口的切换
  102. layim.on('chatChange', function(data){
  103. console.log(data);
  104. });
  105. layim.on('sign', function(value){
  106. $.get("chat/imController.do?changeSign&sign="+value);
  107. console.log(value); //获得新的签名
  108. });
  109. //初始最小化聊天界面
  110. //layim.setChatMin();
  111. });
  112. }
  113. //update-end--author:dangzhenghui Date:20170620 for:TASK #2160 【兼容】在线聊天插件,判断IE不支持websocet给try掉,不集成插件功能
  114. //layim聊天组件end