diff --git a/src/app/protocol/wrac/page.tsx b/src/app/protocol/wrac/page.tsx index 8b61c07..cd97496 100644 --- a/src/app/protocol/wrac/page.tsx +++ b/src/app/protocol/wrac/page.tsx @@ -4,6 +4,8 @@ import { ArrowLeft } from "lucide-react"; import Link from "next/link"; import Text from "@/components/blocks/Text"; import PageTitle from "@/components/blocks/PageTitle"; +import Title from "@/components/blocks/Title"; +import InlineCode from "@/components/blocks/InlineCode"; export default function Wrac() { return ( @@ -26,7 +28,25 @@ export default function Wrac() { WRAC (WebSocket Real Address Chat) is a community-made successor to RAC that uses WebSockets instead of TCP. It uses the same requests as - RAC, but you should send data in binary format. + RAC, but you should send data in binary format. Also, you can use the + same connection multiple times, what differs from the usual RAC, where + you had to connect the server each time you made some request. That + causes some differences in the messages receiving. + + Receiving messages + + As the connection now can be keep-alive, and the websocket uses messages + for transactions, we can't just do the same as we did in RAC to get the messages. + + + Now, to use those packets (0x01 for normal reading and 0x02 for chunked reading), + we need to let the server know that we want to use them, and not send + messages (the same packet-ids). The way how to do this is just add the byte 0x00 to the start + of packets. For example: 0x00 0x01 for normal reading. + + + This way we can separate the packets that receive data from the packet that receives the total size. + In the sence of keep-alive, WRAC solves the main problem with usual RAC.