test_shake.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <?php defined('InShopNC') or exit('Access Invalid!'); ?>
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>websocket测试</title>
  7. <style type="text/css">
  8. .msg_list p:first-child {
  9. color: red;
  10. }
  11. </style>
  12. </head>
  13. <body>
  14. <div class="maincontent">
  15. <input type="text" placeholder="输入内容" id="msg">
  16. <input type="text" placeholder="输入内容" id="to_user">
  17. <div>
  18. <button id="room_single_msg">单条房间消息</button> <button id="room_millon_msg">压力房间消息</button>
  19. </div>
  20. <button id="peer_msg">单点消息</button>
  21. <button id="offline">断开websocket</button>
  22. <button id="reconnet">重新连接websocket</button>
  23. <div class="msg_list"></div>
  24. </div>
  25. <script type="text/javascript" src="<?php echo RESOURCE_SITE_URL; ?>/mobile/shake/js/zepto.min.js"></script>
  26. <script type="text/javascript">
  27. var token = "<?php echo $output['token']; ?>";
  28. var addr = "<?php echo $output['addr']; ?>";
  29. var room = <?php echo $output['room']; ?>;
  30. var user = <?php echo $output['user']; ?>;
  31. var seq = 1;
  32. var client = null;
  33. var WebStreamer = function()
  34. {
  35. client = new WebSocket(addr);
  36. client.onopen = function ()
  37. {
  38. var msg = "websocket已连接";
  39. var msgHTML = "<p>" + msg + "</p>";
  40. $('.msg_list').prepend(msgHTML);
  41. var msg = {
  42. act: 'access',
  43. op: 'login',
  44. seq : "" + seq++,
  45. token: token,
  46. msgtype: 'message',
  47. };
  48. client.send(JSON.stringify(msg));
  49. };
  50. client.onmessage = function (datas) {
  51. console.table(JSON.parse(datas.data));
  52. };
  53. client.onerror = function () {
  54. console.log('error');
  55. var msg = "websocket已关闭";
  56. var msgHTML = "<p>" + msg + "</p>";
  57. $('.msg_list').prepend(msgHTML);
  58. };
  59. client.onclose = function (e) {
  60. console.log("websocket已关闭...");
  61. var msg = "websocket已关闭";
  62. var msgHTML = "<p>" + msg + "</p>";
  63. $('.msg_list').prepend(msgHTML);
  64. };
  65. };
  66. WebStreamer();
  67. document.getElementById('offline').addEventListener('click',function(){
  68. client.close();
  69. });
  70. document.getElementById('reconnet').addEventListener('click',function(){
  71. WebStreamer();
  72. });
  73. document.getElementById('room_single_msg').addEventListener('click', function ()
  74. {
  75. var inputVal = $('#msg').val();
  76. if(!inputVal) {
  77. return;
  78. }
  79. var msg = {
  80. act: 'room',
  81. op: 'message',
  82. msgtype: 'message',
  83. seq : "" + seq++,
  84. room:room,
  85. user:user,
  86. type : "text",
  87. content:inputVal
  88. };
  89. client.send(JSON.stringify(msg));
  90. });
  91. document.getElementById('room_millon_msg').addEventListener('click', function ()
  92. {
  93. var inputVal = $('#msg').val();
  94. if(!inputVal) {
  95. return;
  96. }
  97. for (var i = 0; i < 1; i++)
  98. {
  99. var msg = {
  100. act: 'room',
  101. op: 'message',
  102. msgtype: 'message',
  103. seq : "" + seq++,
  104. room:room,
  105. user:user,
  106. type : "text",
  107. content:inputVal
  108. };
  109. client.send(JSON.stringify(msg));
  110. }
  111. });
  112. document.getElementById('peer_msg').addEventListener('click', function ()
  113. {
  114. var inputVal = $('#msg').val();
  115. if(!inputVal) {
  116. return;
  117. }
  118. var to_user = $('#to_user').val();
  119. if(!to_user) {
  120. return;
  121. }
  122. var msg = {
  123. act: 'chatwo',
  124. op: 'message',
  125. msgtype: 'message',
  126. seq : "" + seq++,
  127. from:user,
  128. to: to_user,
  129. type : "text",
  130. content:inputVal
  131. };
  132. client.send(JSON.stringify(msg));
  133. });
  134. </script>
  135. </body>
  136. </html>