Socket.io: string data berubah melalui soket

Dibuat pada 30 Nov 2017  ·  5Komentar  ·  Sumber: socketio/socket.io

Catatan : untuk pertanyaan dukungan, silakan gunakan salah satu saluran ini: stackoverflow atau slack

Yang kamu ingin:

  • [x] laporkan bug
  • [ ] meminta fitur

Perilaku saat ini

ketika memancarkan objek sebagai data dan di dalamnya menggunakan string (atau unicode \u2265 ) ia mengubahnya menjadi string huruf e dan berubah menjadi d

Langkah-langkah untuk mereproduksi (jika perilaku saat ini adalah bug)

sisi klien

channel.emit('data', {data:'≥'});

sisi server

socket.on('data',({data:bla})=>{
console.log(bla); // prints 'e'
});

Catatan : cara terbaik untuk mendapatkan jawaban cepat adalah dengan memberikan kasus uji yang gagal, dengan forking biola berikut misalnya.

Perilaku yang diharapkan

bahwa data akan tetap sama secara konsisten

Mempersiapkan

  • OS: Windows
  • peramban: Chrome 62
  • versi socket.io: 1.7.2

Informasi lain (mis. stacktrace, masalah terkait, saran cara memperbaikinya)

Komentar yang paling membantu

dicoba dengan 2.0.4, masih terjadi ...
memperbaikinya dengan encoding dan decoding data dengan kode ini:
sisi klien

function strencode( data ) {
    return encodeURIComponent( escape( JSON.stringify( data ) ) );
}

sisi server

function strdecode( data ) {
    return JSON.parse( unescape( decodeURIComponent( data ) ) );
}

Semua 5 komentar

Ini hanya terjadi ketika soket belum ditingkatkan (penggunaan pertama) lebih dari xhr,
setelah upgrade ke websocket semua data terkirim dengan benar

lihat #451 dan #572

Ada masalah tentang penguraian utf8 di versi 1.x, bisakah Anda mencoba dengan versi 2.x?

Terkait:

dicoba dengan 2.0.4, masih terjadi ...
memperbaikinya dengan encoding dan decoding data dengan kode ini:
sisi klien

function strencode( data ) {
    return encodeURIComponent( escape( JSON.stringify( data ) ) );
}

sisi server

function strdecode( data ) {
    return JSON.parse( unescape( decodeURIComponent( data ) ) );
}

Ya itu sepertinya berhasil. Terima kasih!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat