После того, как я добавлю аргумент-origin-to-force-quic-on = localhost: 443 для Chrome Launcher, все соединения (включены навигации) начинают запускать конечную точку Quic на моем сервере. Это совершенно хорошо для целей моего проекта, но я не могу найти никакого примера о том, как обрабатывать такие навигационные соединения. Я перемещаюсь по https: // localhost , а мой код сервера Deno выглядит следующим образом:
import SSL from './SSL.js'
const enc=new TextEncoder,
dec=new TextDecoder
for await(const conn of new Deno.QuicEndpoint({port:443}).listen({alpnProtocols:['h2','h3'],...(SSL.default??SSL)})){
for await(const {writable,readable} of conn.incomingBidirectionalStreams){
for await(const data of readable) console.log(dec.decode(data))
const writer=writable.getWriter()
await writer.write(enc.encode('Hello World!'))
writer.close()
}
}
В этом коде я просто пытаюсь прочитать все, что Chrome отправляет мне, а затем ответить на все с помощью Hello World! . Однако это не работает с обоих концов. Байтовые массивы, которые получает мой сервер, выглядят так: < /p>
Uint8Array(451) [
1, 65, 192, 0, 0, 209, 80, 134, 160, 228, 29, 19,
157, 9, 215, 193, 228, 47, 0, 65, 72, 177, 39, 90,
209, 255, 184, 254, 116, 157, 63, 220, 63, 119, 108, 29,
82, 127, 63, 125, 224, 254, 94, 254, 126, 148, 254, 111,
79, 97, 233, 53, 180, 255, 63, 125, 224, 254, 66, 203,
223, 207, 210, 159, 206, 35, 158, 106, 10, 165, 233, 236,
61, 37, 254, 126, 251, 193, 252, 133, 151, 191, 159, 47,
4, 65, 72, 177, 39, 90, 209, 173, 73, 227, 53, 5,
2, 63, 48, 47,
... 351 more items
]
< /code>
Chrome отправляет 3 одинаковых байтовых массива, а затем закрывает свой поток для записи. Эти байты явно не могут быть переведены в Unicode, и когда на них используется новый TextDecoder
- вывод - расцвет. Итак, что мне делать с этими байтовыми массивами и какова их цель? Я подумал, что браузер будет ждать, чтобы получить HTML -код, чтобы нарисовать его на экране браузера, однако, когда я отправляю закодированный Hello World! и закрываю мою запись для записи подключения с моим сервером немедленно заканчивается с помощью ERR_QUIC_PROTOCOL_ERROR . Итак, что именно мне следует отправить в браузер взамен?
После того, как я добавлю аргумент-origin-to-force-quic-on = localhost: 443 для Chrome Launcher, все соединения (включены навигации) начинают запускать конечную точку Quic на моем сервере. Это совершенно хорошо для целей моего проекта, но я не могу найти никакого примера о том, как обрабатывать такие навигационные соединения. Я перемещаюсь по https: // localhost , а мой код сервера Deno выглядит следующим образом: [code]import SSL from './SSL.js'
const enc=new TextEncoder, dec=new TextDecoder for await(const conn of new Deno.QuicEndpoint({port:443}).listen({alpnProtocols:['h2','h3'],...(SSL.default??SSL)})){ for await(const {writable,readable} of conn.incomingBidirectionalStreams){ for await(const data of readable) console.log(dec.decode(data)) const writer=writable.getWriter() await writer.write(enc.encode('Hello World!')) writer.close() } } [/code] В этом коде я просто пытаюсь прочитать все, что Chrome отправляет мне, а затем ответить на все с помощью Hello World! . Однако это не работает с обоих концов. Байтовые массивы, которые получает мой сервер, выглядят так: < /p> [code]Uint8Array(451) [ 1, 65, 192, 0, 0, 209, 80, 134, 160, 228, 29, 19, 157, 9, 215, 193, 228, 47, 0, 65, 72, 177, 39, 90, 209, 255, 184, 254, 116, 157, 63, 220, 63, 119, 108, 29, 82, 127, 63, 125, 224, 254, 94, 254, 126, 148, 254, 111, 79, 97, 233, 53, 180, 255, 63, 125, 224, 254, 66, 203, 223, 207, 210, 159, 206, 35, 158, 106, 10, 165, 233, 236, 61, 37, 254, 126, 251, 193, 252, 133, 151, 191, 159, 47, 4, 65, 72, 177, 39, 90, 209, 173, 73, 227, 53, 5, 2, 63, 48, 47, ... 351 more items ] < /code> Chrome отправляет 3 одинаковых байтовых массива, а затем закрывает свой поток для записи. Эти байты явно не могут быть переведены в Unicode, и когда на них используется новый TextDecoder [/code] - вывод - расцвет. Итак, что мне делать с этими байтовыми массивами и какова их цель? Я подумал, что браузер будет ждать, чтобы получить HTML -код, чтобы нарисовать его на экране браузера, однако, когда я отправляю закодированный Hello World! и закрываю мою запись для записи подключения с моим сервером немедленно заканчивается с помощью ERR_QUIC_PROTOCOL_ERROR . Итак, что именно мне следует отправить в браузер взамен?
Переписка списка Spring MVC: Почему ARR [] = Hello & Arr [] = World требует @Setter, но arr = hello & arr = мир нет?
На нашем фронте мы используем axios , которые по умолчанию сериализуют параметры массива, такие как это:
Переписка списка Spring MVC: Почему ARR [] = Hello & Arr [] = World требует @Setter, но arr = hello & arr = мир нет?
На нашем фронте мы используем axios , которые по умолчанию сериализуют параметры массива, такие как это:
Переписка списка Spring MVC: Почему ARR [] = Hello & Arr [] = World требует @Setter, но arr = hello & arr = мир нет?
На нашем фронте мы используем axios , которые по умолчанию сериализуют параметры массива, такие как это:
Переписка списка Spring MVC: Почему ARR [] = Hello & Arr [] = World требует @Setter, но arr = hello & arr = мир нет?
На нашем фронте мы используем axios , которые по умолчанию сериализуют параметры массива, такие как это:
Для простоты: все, что я пытаюсь сделать, это отправить сообщение из моего эмулятора Android на сервер консоли Java в Eclipse, содержащее простую строку, а затем я хочу, чтобы сервер ответил другой строкой.
/>Конечно; Я подключусь к хосту 10.0.2.2 и...