No Description

packet.js 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var utils_1 = require("./utils");
  4. var node_int64_1 = require("node-int64");
  5. var Packet = (function () {
  6. function Packet() {
  7. this.key = 'b8ca9aa66def05ff3f24919274bb4a66';
  8. }
  9. Packet.prototype.pack = function (operator, sequence, header, body) {
  10. header = utils_1.Utils.encrypt(header, this.key, this.key);
  11. body = utils_1.Utils.encrypt(body, this.key, this.key);
  12. var headerLength = header.length;
  13. var bodyLength = body.length;
  14. var buf = new ArrayBuffer(20 + headerLength + bodyLength);
  15. var dataView = new DataView(buf);
  16. var nsBuf = new node_int64_1.default(sequence).toBuffer();
  17. dataView.setUint32(0, operator);
  18. dataView.setUint32(12, headerLength);
  19. dataView.setUint32(16, bodyLength);
  20. var bufView = new Uint8Array(buf);
  21. for (var i = 0; i < 8; i++) {
  22. bufView[4 + i] = nsBuf[i];
  23. }
  24. for (var i_1 = 0; i_1 < headerLength; i_1++) {
  25. bufView[20 + i_1] = header.charCodeAt(i_1);
  26. }
  27. for (var i_2 = 0; i_2 < bodyLength; i_2++) {
  28. bufView[20 + headerLength + i_2] = body.charCodeAt(i_2);
  29. }
  30. return buf;
  31. };
  32. Packet.prototype.unPack = function (data) {
  33. var dataView = new DataView(data);
  34. this.operator = dataView.getUint32(0, false);
  35. this.sequence = new node_int64_1.default(new Uint8Array(dataView.buffer.slice(4, 12))).toNumber();
  36. this.headerLength = dataView.getUint32(12, false);
  37. this.bodyLength = dataView.getUint32(16, false);
  38. var header = utils_1.Utils.ab2str(dataView.buffer.slice(20, 20 + this.headerLength));
  39. var body = utils_1.Utils.ab2str(dataView.buffer.slice(20 + this.headerLength));
  40. this.header = utils_1.Utils.decrypt(header, this.key, this.key);
  41. this.body = utils_1.Utils.decrypt(body, this.key, this.key);
  42. return this;
  43. };
  44. return Packet;
  45. }());
  46. exports.Packet = Packet;