Vorbeam intr-un alt articol despre protocolul Yahoo Messenger (pe scurt, YMSG).

In acel articol, vorbeam din perspectiva teoretica despre acest protocol, care este unul closed-souce (protocol nativ Yahoo, nedezvaluit publicului). In prezentul articol voi vorbi despre headerele pachetelor si structura lor.

Dupa cum spuneam acolo, pachetul este structurat in 2 sectiuni intre care este introdusa si cheia de autentificare:

  1. Header
  2. Corp Pachet
1. Headerul:

Acesta incepe INTOTDEAUNA cu YMSG urmat de caracterul null ( chr(0) in PHP ).
Dupa caracterul null este trimisa versiunea protocolului ce va fi utilizat urmata de 1 caracter null si un spatiu.
Dupa aceste 2 caractere null se trimite valoarea intreaga din impartirea lungimii corpului pachetului la 256.
Daca am trimis intregul din impartirea lungimii la 256, urmeaza trimiterea modulului din aceasta impartire dupa care se mai trimite un caracter null.
Urmeaza cea mai importanta parte a header-ului si anume ceea ce voi numi mai departe HEADER PACHET (pentru ca, practic, este sigura variabila din header) urmata de un caracter null si 3 spatii.
Despre valorile ce le pot lua headerele voi vorbi mai tarziu in acest articol sau intr-un articol viitor, deoarece sunt destul de multe.

1. Corpul pachetului:
In corpul pachetului sunt transmise informatii despre utilizatorul-sursa, utilizatorul-destinatie, mesaj, status,  etc
Structura nu este standard ca in cazul header-ului, avand doar 3 constante care se regasesc in toate pachetele si anume:  utilizatorul-sursa, utilizatorul-destinatie si delimitatorul.
Delimitatorul este caracterul 192  alaturi de caracterul 128.

Exemplu pachet YMSG pentru trimitere mesaj:
Variabile:
Sursa = Id-ul sau profilul utilizatorului autentificat.
Delimitare = caracterul 192  alaturi de caracterul 128.
Destinatie = Id-ul sau profilul utilizatorului caruia ii este destinat mesajul.
CheieAuth = Cheie de autentificare generata la autentificarea pe serverul yahoo (scs.msg.yahoo.com:5050).
Mesaj = Mesajul transmis utilizatorului-destinatie.

1 . Delimitare . Sursa . Delimitare . 5 . Delimitare . Destinatie . Delimitare . 14 . Delimitare . Mesaj . Delimitare . 97 . Delimitare . 1 . Delimitare . 63 . Delimitare . Delimitare . 64 . Delimitare . 2 . Delimitare . 1002 . Delimitare . 1 . Delimitare . 266 . Delimitare . 0 . Delimitare

Pentru intrebari legate de acest protocol astept feedback.

Alte articole asemanatoare