Hướng dẫn convert json to binary javascript - chuyển đổi json sang javascript nhị phân
Tôi muốn gửi mảng ví dụ này Show
đến máy chủ WebSocket của tôi dưới dạng dữ liệu nhị phân. Ở phía máy chủ, tôi muốn giải mã dữ liệu nhị phân trở lại mảng, thực hiện các thay đổi và gửi lại dữ liệu nhị phân cho máy khách. Và cuối cùng ở phía máy khách làm thế nào để giải mã dữ liệu nhị phân trở lại thành mảng? Ví dụ ảnh chụp màn hình ý nghĩa của tôi: Đây là mã thực tế của tôi:
Mã phía máy chủ:
Chỉnh sửa mới nhất đọc từ đâyBây giờ tôi có thể gửi tin nhắn dưới dạng khung nhị phân đến máy chủ WebSocket. Tôi tìm thấy các chức năng để chuyển đổi chuỗi thành loại nhị phân và gửi nó đến máy chủ WS. Bây giờ tôi có vấn đề. Các chức năng này (bên dưới) không hoạt động ở phía máy chủ. Mã ví dụ:
Mã này hoạt động tốt. Bây giờ, khi tôi cố gắng gửi dưới dạng bộ đệm mảng:
Đầu ra không phải là khung nhị phân, chỉ là chuỗi "[ArrayBuffer đối tượng]": Tôi cũng đã thử:
Nhưng thông báo gửi này là chuỗi bình thường, không phải khung nhị phân. Vì vậy, làm thế nào tôi có thể gửi khung nhị phân từ máy chủ webSocket đến máy khách? Khi tôi gửi lại nhận được tin nhắn nhị phân:how I can send Binary frame from websocket server to client? When I send back received binary message:
Chỉ điều này hoạt động. Thuộc tính Ví dụ này đọc một hình ảnh dưới dạng tệp nhị phân và tạo một mảng số nguyên không dấu 8 bit từ các byte thô. Lưu ý rằng điều này sẽ không giải mã được hình ảnh và đọc các pixel. Bạn sẽ cần một thư viện giải mã PNG cho điều đó.
Bạn cũng có thể đọc một tệp nhị phân dưới dạng 2 bằng cách đặt chuỗi 5 thành thuộc tính 3.
Nhận dữ liệu nhị phân trong các trình duyệt cũ hơnHàm 9 được hiển thị bên dưới tải dữ liệu nhị phân từ URL được chỉ định, trả lại cho người gọi.
Phép thuật xảy ra trong dòng 5, ghi đè loại MIME, buộc trình duyệt phải coi nó là văn bản thuần túy, sử dụng bộ ký tự do người dùng định nghĩa. Điều này nói với trình duyệt không phân tích nó, và để cho các byte đi qua chưa được xử lý. 0Ví dụ trên tìm nạp byte tại Offset 0 trong dữ liệu nhị phân được tải. Phạm vi hợp lệ cho 0 là từ 0 đến 2.Xem tải xuống các luồng nhị phân với xmlhttprequest để biết giải thích chi tiết. Xem thêm Tải xuống các tập tin. Gửi dữ liệu nhị phânPhương pháp 3 của XMLHTTPREQUEST đã được mở rộng để cho phép truyền dữ liệu nhị phân dễ dàng bằng cách chấp nhận đối tượng 1, 2 hoặc 6.Ví dụ sau tạo một tệp văn bản trên đường và sử dụng phương thức 7 để gửi "tệp" đến máy chủ. Ví dụ này sử dụng văn bản thuần túy, nhưng bạn có thể tưởng tượng dữ liệu là một tệp nhị phân thay thế. 1Gửi các mảng được đánh máy dưới dạng dữ liệu nhị phânBạn cũng có thể gửi các mảng được đánh máy JavaScript dưới dạng dữ liệu nhị phân. 2Đây là xây dựng một mảng 512 byte của số nguyên 8 bit và gửi nó; Tất nhiên, bạn có thể sử dụng bất kỳ dữ liệu nhị phân nào bạn muốn. Gửi biểu mẫu và tải lên các tệpXin vui lòng, đọc đoạn này. ArrayBuffer trong JavaScript là gì?Đối tượng ArrayBuffer được sử dụng để biểu diễn bộ đệm dữ liệu nhị phân thô chung, có độ dài cố định.Nó là một mảng các byte, thường được gọi bằng các ngôn ngữ khác là "mảng byte".used to represent a generic, fixed-length raw binary data buffer. It is an array of bytes, often referred to in other languages as a "byte array".
JavaScript có hỗ trợ dữ liệu nhị phân không?Bạn cũng có thể gửi các mảng được đánh máy JavaScript dưới dạng dữ liệu nhị phân.Đây là xây dựng một mảng 512 byte của số nguyên 8 bit và gửi nó;Tất nhiên, bạn có thể sử dụng bất kỳ dữ liệu nhị phân nào bạn muốn.. This is building a 512-byte array of 8-bit integers and sending it; you can use any binary data you'd like, of course.
Kiểu dữ liệu nhị phân trong JavaScript là gì?Dữ liệu nhị phân trong JavaScript được triển khai theo cách không chuẩn, so với các ngôn ngữ khác.Nhưng khi chúng ta sắp xếp mọi thứ, mọi thứ trở nên khá đơn giản.Đối tượng nhị phân cơ bản là ArrayBuffer-một tham chiếu đến vùng bộ nhớ liên tục có độ dài cố định.ArrayBuffer – a reference to a fixed-length contiguous memory area.
Những dòng mã nào sau đây cho phép XMLHTTPRequest trả về dữ liệu nhị phân?Những dòng mã nào sau đây cho phép XMLHTTPRequest trả về dữ liệu nhị phân?request.responsetype = 'nhị phân'; yêu cầu.request. responseType = 'binary'; request. |