Habré a scris deja despre modul în care agentul Mail.Ru. În momentul în care documentația oficială pentru protocolul nu este în domeniul public, deci va trebui să exploreze dispozitivul empiric. In acest articol voi discuta trimiterea de mesaje text formatat și crearea și trimiterea de mesaje la conferință.
Cateva cuvinte despre protocolul
Mesajele transmise de pachete de un anumit format. Primii 44 de bytes - un titlu care arata ca acest lucru:
Numerele sunt transmise în format UL, care arata ca 16 bytes scrise de la dreapta la stânga. Astfel, numărul 10 va apărea 00 00 00 0A. Așa că am pachet în UL:
Formatul textului este transmis în LPS - linie cu o lungime predeterminată (lungime este definită ca UL). Vom pachet după cum urmează:
Avem nevoie, de asemenea, linia de ambalare în LPS în alte codificări:
Mesaje text cu formatare
Să vedem cum arată posturi. câmp msg în antet trebuie să fie umplut cu un 0x1008 constant, restul pachetului mesajului este după cum urmează:
Ultima componentă a pachetului - parte a unui mesaj legat de formatarea textului. Dacă nu avem nevoie de formatare, rtf_part ar trebui să constea dintr-un spațiu. În acest caz, Mail.Ru agent, care va primi acest mesaj, se va utiliza fonturile instalate în mod implicit în agentul destinatarului.
Dacă vrem să trimită un mesaj formatat, ultima parte a pachetului trebuie să fie LPSZ (rtf_part), în cazul în care:
Ultimul termen - culoarea fundalului, în pregătirea a casetei de mesaje chat se va schimba culoarea în întregime.
rtf pentru a scrie «qwerty» arata ca acest lucru:
Este posibil să observați că prima literă a fost scrisă în același font, iar restul altora. Pentru a explica acest comportament, eu nu pot, dar rtf, generat de agent Mail.Ru, pe care am reușit să se arăta. rtf, nu au această proprietate, rămân valabile. Ceilalți parametri (limbă, masa de fonturi, limba română) afectează valabilitatea RTF.
Rămâne de notat că, în cazul rtf-o parte a mesajului nu este gol, va veni într-o declarație. În cazul în care partea de text specificată a mesajului (corp), atunci textul vom vedea fereastra pop-up, Mail.Ru Agent.
conferință
În cazul în care, în scopul de a începe un chat cu un alt contact, trebuie doar pentru a trimite un mesaj, în scopul de a începe comunicarea într-o conferință, aveți nevoie pentru a face câteva abdomene.
Crearea de conferințe
Fiecare conferință are numele său unic, care arata ca [email protected], pe care le obține de la server ca răspuns la următorul mesaj:
Ca răspuns la acest mesaj mesajul vine de la un server cu același număr în cheder și aydishnikom. După ce a primit un răspuns de la server, puteți trimite mesaje de la conferință.
Trimiterea de mesaje la conferința
Pentru a trimite un mesaj la conferință, aveți nevoie pentru a trimite două pachete. Primul pachet are nici un sens, este o pregătire:
Și acum, în mod direct, mesajul:
Se pare ca un mesaj normal la conferința de destinatar-aydishnikom.
Părăsirea unei conferințe
Nu s-a putut da seama cum să obțineți numărul absolut al conferinței, dar experimentul a constatat că identificarea chat-ul nu este pe ea. Prin urmare, puteți specifica orice număr rezonabil, de exemplu, 42.
Cercetarea mea este departe de a fi completă, așa că voi fi bucuros la orice corecturi și completări.