websocket.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. self.importScripts("helper.js");
  2. var parameters = GetRequest();
  3. var ip = parameters["ip"];
  4. var domainName = parameters["domainName"];
  5. var isWSS = false;
  6. var socketURL = isWSS ? "wss://" + domainName + "/card?cardIp=" + ip : "ws://" + domainName + "/card?cardIp=" + ip;
  7. doConnect();
  8. function doConnect() {
  9. var ws = new WebSocket(socketURL);
  10. ws.binaryType = 'arraybuffer';
  11. ws.onclose = function () {
  12. self.postMessage('close');
  13. }
  14. ws.onerror = function () {
  15. self.postMessage('close');
  16. }
  17. ws.addEventListener('open', function (event) {
  18. ws.send(ConfigChannel("RK3923C1201900139"));
  19. var checkBuffer = GetScreenState();
  20. ws.send(checkBuffer);
  21. });
  22. ws.addEventListener('message', function (event) {
  23. var input = new Uint8Array(event.data);
  24. if (input[0] == 0xff) {
  25. self.postMessage(input);
  26. } else {
  27. self.postMessage(input);
  28. }
  29. });
  30. self.addEventListener('message', function (e) {
  31. if (e.data === 'restart') {
  32. doConnect();
  33. return
  34. }
  35. ws.send(e.data);
  36. }, false);
  37. }
  38. function GetRequest() {
  39. var url = location.search; // 获取url中"?"符后的字串
  40. var obj = new Object();
  41. if (url.indexOf("?") != -1) {
  42. var str = url.substr(1);
  43. strs = str.split("&");
  44. for (var i = 0; i < strs.length; i++) {
  45. obj[strs[i].split("=")[0]] = (strs[i].split("=")[1]);
  46. }
  47. }
  48. return obj;
  49. }