Advertisement
Guest User

websocketClient

a guest
Jul 19th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.90 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3.  
  4. <head>
  5. <meta charset="UTF-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  8. <title>Websocket Test</title>
  9. </head>
  10.  
  11. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  12. <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  13. <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  14.  
  15. <body>
  16. <div class="container-fluid">
  17. <form>
  18. <input type="text" id="host" value="localhost" style="background: lightgray">
  19. <input type="text" id="port" value="39477" style="background: lightgray">
  20. <input type="text" id="uri" value="/readID" style="background: lightgray">
  21. </form>
  22. <br>
  23.  
  24. <img id="idphoto" hidden="true" width="100px" height="100px">
  25.  
  26. <form>
  27. เลขบัตรประจำตัวประชาชน
  28. <input type="text" id="cid" name="cid" style="width: 100%">
  29. <br> ชื่อ สกุล
  30. <input type="text" id="thname" name="thai name" style="width:100%">
  31. <br>
  32. <input type="text" id="engname" name="english name" style="width:100%">
  33. <br> เกิดวันที่
  34. <input type="text" id="dob" name="date of birth" style="width:100%">
  35. <br> อายุ
  36. <input type="text" id="age" name="age" style="width:100%">
  37. <br> ที่อยู่
  38. <input type="text" id="addr" name="address" style="width:100%">
  39. <br> ออกบัตร
  40. <input type="text" id="iss" name="issue date" style="width:100%">
  41. <br> หมดอายุ
  42. <input type="text" id="exp" name="expire date" style="width:100%">
  43. <br>
  44. </form>
  45. <br>
  46.  
  47. <input type="button" id="readIdCard" value="read">
  48. <input type="button" id="readingStatus" value=" " style="background-color: lightgray">
  49.  
  50. </div>
  51. </body>
  52.  
  53.  
  54. <script>
  55. clientWebsocket = () => {
  56. var host = document.getElementById('host').value;
  57. var port = document.getElementById('port').value;
  58. var uri = document.getElementById('uri').value;
  59. var ws = new WebSocket('ws://' + host + ':' + port + uri);
  60. var currentTime
  61.  
  62. document.getElementById('readIdCard').addEventListener('click', (event) => {
  63. currentTime = new Date();
  64. ws.send(currentTime);
  65. console.log("Start reading...");
  66. });
  67.  
  68. if (document.getElementById('readingStatus') !== '') {
  69. document.getElementById('readingStatus').addEventListener('click', () => {
  70. location.reload();
  71. });
  72. }
  73.  
  74. ws.onopen = () => {
  75. document.getElementById('host').style.background = "#00ff16"
  76. };
  77.  
  78. ws.onmessage = (event) => {
  79. try {
  80. var data = JSON.parse(event.data);
  81. console.log(currentTime);
  82. fillForm(data, currentTime);
  83. document.getElementById('readingStatus').style.background = "#00ff16";
  84. document.getElementById('readingStatus').value = "Reading success.";
  85. console.log('Reading success.');
  86. // submitForm();
  87. }
  88. catch{
  89. console.log(event.data);
  90. document.getElementById('readingStatus').style.background = "#ff1600";
  91. document.getElementById('readingStatus').value = "Reading failed.";
  92. console.log('Reading failed.')
  93. }
  94. };
  95.  
  96. ws.onclose = (event) => {
  97. document.getElementById('host').style.background = '#ff1600';
  98. document.getElementById('readingStatus').value = 'Connection is closed, press F5 or click here to reconnect.';
  99. console.log('Connection is closed try reopen the program or press F5 to reconnect.');
  100. };
  101.  
  102. window.onbeforeunload = (event) => {
  103. console.log('refresh attemp');
  104. ws.close();
  105. };
  106.  
  107. window.onunload = (event) => {
  108. event.preventDefault()
  109. };
  110. };
  111.  
  112. fillForm = (data, currentTime) => {
  113. var cid = data['result']['cid'];
  114. var pers_info = data['result']['pers_info'];
  115. var dob = pers_info['dob'];
  116. var addr_info = data['result']['addr_info'];
  117. var iss_date = data['result']['iss_exp_date']['iss_date'];
  118. var exp_date = data['result']['iss_exp_date']['exp_date'];
  119. var photo = 'data:image/png;base64,' + data['result']['photo'];
  120.  
  121. document.getElementById('cid').value = cid;
  122. document.getElementById('thname').value = pers_info['title']['th_title'] + pers_info['name']['th_f_name'] + ' ' + pers_info['name']['th_l_name'];
  123. document.getElementById('engname').value = pers_info['title']['eng_title'] + ' ' + pers_info['name']['eng_f_name'] + ' ' + pers_info['name']['eng_l_name'];
  124. document.getElementById('dob').value = dob['date'].toString() + '/' + dob['month'].toString() + '/' + dob['year'].toString();
  125. document.getElementById('addr').value = addr_info['house_no'] + ' ' + addr_info['road'] + ' ' + addr_info['subdistrict'] + ' ' + addr_info['district'] + ' ' + addr_info['province'];
  126. document.getElementById('iss').value = iss_date['date'] + '/' + iss_date['month'] + '/' + iss_date['year'];
  127. document.getElementById('exp').value = exp_date['date'] + '/' + exp_date['month'] + '/' + exp_date['year'];
  128. document.getElementById('idphoto').src = photo;
  129. document.getElementById('idphoto').hidden = false;
  130.  
  131. if (currentTime.getMonth() - dob['month'] > 0) {
  132. document.getElementById('age').value = (currentTime.getFullYear() - dob['year']).toString();
  133. } else if (currentTime.getMonth() - dob['month'] == 0) {
  134. if (currentTime.getDate() - dob['date'] >= 0) {
  135. document.getElementById('age').value = (currentTime.getFullYear() - dob['year']).toString();
  136. }
  137. else {
  138. document.getElementById('age').value = (currentTime.getFullYear() - dob['year'] - 1).toString();
  139. }
  140. }
  141. };
  142.  
  143. submitForm = () => {
  144. /* submit info */
  145. };
  146.  
  147. window.onload = clientWebsocket();
  148. </script>
  149.  
  150. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement