index.jsp 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta charset="utf-8" />
  6. <title>Demo Chat</title>
  7. <style>
  8. body {
  9. padding:20px;
  10. }
  11. #console {
  12. height: 400px;
  13. overflow: auto;
  14. }
  15. .username-msg {color:orange;}
  16. .connect-msg {color:green;}
  17. .disconnect-msg {color:red;}
  18. .send-msg {color:#888}
  19. </style>
  20. <meta rel="stylesheet" src="${pageContext.request.contextPath }/jsp/css/bootstrap.min.css">
  21. <script src="${pageContext.request.contextPath }/jsp/js/bootstrap.js"></script>
  22. <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.5.0/socket.io.js"></script>
  23. <script src="${pageContext.request.contextPath }/jsp/js/moment.min.js"></script>
  24. <script src="${pageContext.request.contextPath }/jsp/js/jQuery.js"></script>
  25. <script>
  26. var userName = 'user' + Math.floor((Math.random()*1000)+1);
  27. //创建通道连接
  28. var socket = io.connect('http://localhost:8090?userId=79');
  29. socket.on('connect', function() {
  30. output('<span class="connect-msg">Client has connected to the server!</span>');
  31. });
  32. socket.on('chatevent', function(message) {
  33. output('<span class="username-msg">' + message.userName + ':</span> ' + message.message);
  34. });
  35. socket.on('disconnect', function() {
  36. output('<span class="disconnect-msg">The client has disconnected!</span>');
  37. });
  38. //关闭通道连接 可被@OnDisconnect注解的方法监听
  39. function sendDisconnect() {
  40. socket.disconnect();
  41. }
  42. function sendMessage() {
  43. var message = $('#msg').val();
  44. $('#msg').val('');
  45. var jsonObject = {
  46. userId: 79,
  47. userName: userName,
  48. message: message
  49. };
  50. //发往后端@OnEvent("chatevent")注解的方法
  51. socket.emit('chatevent', jsonObject);
  52. }
  53. function output(message) {
  54. var currentTime = "<span class='time'>" + moment().format('HH:mm:ss.SSS') + "</span>";
  55. var element = $("<div>" + currentTime + " " + message + "</div>");
  56. $('#console').prepend(element);
  57. }
  58. $(document).keydown(function(e){
  59. if(e.keyCode == 13) {
  60. $('#send').click();
  61. }
  62. });
  63. </script>
  64. </head>
  65. <body>
  66. <h1>Netty-socketio Demo Chat</h1>
  67. <br/>
  68. <div id="console" class="well">
  69. </div>
  70. <form class="well form-inline" onsubmit="return false;">
  71. <input id="msg" class="input-xlarge" type="text" placeholder="Type something..."/>
  72. <button type="button" onClick="sendMessage()" class="btn" id="send">Send</button>
  73. <button type="button" onClick="sendDisconnect()" class="btn">Disconnect</button>
  74. </form>
  75. </body>
  76. </html>