002.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <?
  2. session_start();
  3. echo "<meta charset=utf8>";
  4. if ($_SESSION['id'] == '' || $_SESSION['id'] == null) {
  5. echo '您尚未登入';
  6. exit;
  7. }
  8. include "connect.php";
  9. $id = $_SESSION['id'];
  10. $name = $_SESSION['name'];
  11. $token = $_SESSION['token'];
  12. /*require './connectnim.php';
  13. $result = $p->queryUserRoomIds($accid);*/
  14. ?>
  15. <!DOCTYPE html>
  16. <html lang="en">
  17. <head>
  18. <meta charset="UTF-8">
  19. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  20. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  21. <title>002</title>
  22. <script src="function.js"></script>
  23. </head>
  24. <body>
  25. <style>
  26. body{
  27. padding: 0px;
  28. margin: 0px;
  29. }
  30. .div1{
  31. background:#333;
  32. color:#fff;
  33. height:80vh;
  34. width:100vw;
  35. overflow-y: auto;
  36. box-sizing:border-box;
  37. -moz-box-sizing:border-box;
  38. /* Firefox */
  39. -webkit-box-sizing:border-box;
  40. /* Safari */
  41. padding:1em;
  42. }
  43. .div2{
  44. width:100vw;
  45. height:20vh;
  46. }
  47. .flex-row{
  48. display: flex;
  49. flex-direction: column;
  50. }
  51. .div{
  52. height:100vh;
  53. }
  54. .textarea{
  55. flex-grow: 4;
  56. }
  57. .submit_btn{
  58. flex-grow: 1;
  59. }
  60. .name{
  61. width:100%;
  62. text-align:right;
  63. display: inline-block;
  64. }
  65. .othermsg *{
  66. text-align:left;
  67. }
  68. .mymsg *{
  69. text-align:right;
  70. }
  71. .timetext{
  72. width:100%;
  73. font-size:11px;
  74. display: inline-block;
  75. }
  76. </style>
  77. <div class="div flex-row">
  78. <div class="div1" id="div1">
  79. </div>
  80. <div class="div2 flex-row">
  81. <textarea name="" id="msg" class="textarea"></textarea>
  82. <button class="submit_btn" id="submit_btn" >提交</button>
  83. </div>
  84. </div>
  85. <!--<script src="./NIM_Web/NIM_Web_Chatroom_v9.1.1.js"></script>-->
  86. <!--<?echo $token ?>-->
  87. <!--<script>
  88. var token ="token";
  89. var chatroomId = 1;
  90. var appKey="9db7587502c900c7cad2d8489f98c0d8";
  91. var account = "";
  92. var chatroom = new Chatroom({
  93. appKey: appKey,
  94. account: account,
  95. token: token,
  96. chatroomId: chatroomId,
  97. chatroomAddresses: [
  98. 'localhost',
  99. 'address2'
  100. ],
  101. onconnect: onChatroomConnect,
  102. onerror: onChatroomError,
  103. onwillreconnect: onChatroomWillReconnect,
  104. ondisconnect: onChatroomDisconnect,
  105. // 消息
  106. onmsgs: onChatroomMsgs
  107. });
  108. function onChatroomConnect(chatroomInfo) {
  109. console.log('进入聊天室', chatroomInfo);
  110. }
  111. function onChatroomWillReconnect(obj) {
  112. // 此时说明 `SDK` 已经断开连接, 请开发者在界面上提示用户连接已断开, 而且正在重新建立连接
  113. console.log('即将重连', obj);
  114. }
  115. function onChatroomDisconnect(error) {
  116. // 此时说明 `SDK` 处于断开状态, 开发者此时应该根据错误码提示相应的错误信息, 并且跳转到登录页面
  117. console.log('连接断开', error);
  118. if (error) {
  119. switch (error.code) {
  120. // 账号或者密码错误, 请跳转到登录页面并提示错误
  121. case 302:
  122. break;
  123. // 被踢, 请提示错误后跳转到登录页面
  124. case 'kicked':
  125. break;
  126. default:
  127. break;
  128. }
  129. }
  130. }
  131. function onChatroomError(error, obj) {
  132. console.log('发生错误', error, obj);
  133. }
  134. function onChatroomMsgs(msgs) {
  135. console.log('收到聊天室消息', msgs);
  136. }
  137. </script>-->
  138. <script>
  139. var id = "<?echo $id ?>";
  140. var name = "<?echo $name ?>";
  141. var div = document.getElementById("div1")
  142. var button = document.getElementById("submit_btn")
  143. var ws = new WebSocket("ws://localhost:3000");
  144. ws.addEventListener("open", () => {
  145. // 将服务器连接成功的信息打印到div中
  146. console.log("Connection open ...");
  147. });
  148. ws.addEventListener("message", (e) => {
  149. //console.log(e);
  150. var data = JSON.parse(e.data);
  151. //保存信息
  152. var str = div.innerHTML;
  153. var classname="othermsg";
  154. if(id == data.id){
  155. classname="mymsg";
  156. }
  157. var html = str+"<div class='"+classname+"'><p><b class='name'>"+data.name+"</b><span class='timetext'>"+gettime()+"</span></p><pre>"+data.msg+"</pre></div>";
  158. div.innerHTML = html
  159. div.scrollTop = div.scrollHeight+200;
  160. //ws.close()
  161. });
  162. button.addEventListener("click", () => {
  163. var msg = document.getElementById("msg").value;
  164. let sendobj={
  165. id:id,
  166. name:name,
  167. msg:msg
  168. }
  169. ws.send(JSON.stringify(sendobj));
  170. //var height = $('#div1').outerHeight();
  171. //$('#div1').scrollTop(parseInt(height)+50);
  172. });
  173. ws.addEventListener("close", (evt) => {
  174. console.log("Connection closed.");
  175. });
  176. ws.addEventListener("error", (err) => {
  177. console.log("ERROR");
  178. console.log(err);
  179. });
  180. </script>
  181. </body>
  182. </html>