websocket.js 1.4 KB

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