stick.js 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. /*
  2. * 粘包处理
  3. */
  4. function stick(rawData){
  5. rawData = ConvertToUint8Array(rawData);
  6. var obj = {
  7. valid: '',
  8. surplus: ''
  9. };
  10. var start = -1;
  11. for(var i = 0; i < rawData.length; i++){
  12. if(rawData[i] == 0xFE && rawData.length > 1){
  13. start = i;
  14. break;
  15. }
  16. }
  17. if(start == -1){
  18. obj.valid = ArrayToHexString(ConvertToUint8Array(rawData));
  19. }else if (start > 0) {
  20. obj.valid = ArrayToHexString(ConvertToUint8Array(rawData, 0, start));
  21. obj.surplus = ArrayToHexString(ConvertToUint8Array(rawData, start, rawData.length));
  22. }else if(rawData[1] + 5 == rawData.length){
  23. obj.valid = ArrayToHexString(ConvertToUint8Array(rawData, 0, rawData[1] + 5));
  24. }else if(rawData[1] + 5 < rawData.length){
  25. obj.valid = ArrayToHexString(ConvertToUint8Array(rawData, 0, rawData[1] + 5));
  26. obj.surplus = ArrayToHexString(ConvertToUint8Array(rawData, rawData[1] + 5, rawData.length));
  27. }else if(rawData[1] + 5 > rawData.length){
  28. obj.surplus = ArrayToHexString(ConvertToUint8Array(rawData, 0, rawData.length));
  29. }
  30. var json = JSON.stringify(obj);
  31. return json;
  32. }