Protokół D->S

Post Reply
polakko
Posts: 2
Joined: Thu Nov 15, 2018 1:43 pm

Thu Nov 15, 2018 2:19 pm

Hejka,
wymyśliłem sobie że, zrobię sobie wirtualne urządzenie w node.js ;) Posiłkując się https://github.com/SUPLA/supla-core/blo ... l-works.md i https://github.com/magx2/supla-core/blo ... on/proto.h próbuję wysłać TDS_SuplaRegisterDevice do serwera.
Generalnie to osadzam TDS_SuplaDeviceChannel w TDS_SuplaRegisterDevice w TSuplaDataPacket. Numer lokacji i hasło lokacji biorę z UI z chmury, guid sobie wymyślam. Chcę jeden kanał SUPLA_CHANNELTYPE_SENSORNO i składam to wszystko binarnie w coś takiego (zrzut w hex)
5355504c4101010000003c000000080100000100000065643932000000001234567890abcdef1234567890abcdef6d7920746573742064657669636500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000302e31616c706861000000000000000000000000000101e80300000100000000000000
i posyłam do serwera i ile bym nie próbował przeróżnych wariantów, to serwer przyjmuje połączenie, nic w ogóle nie odsyła - bez żadnej reakcji po 5 sekundach połączenie zamyka. Jedynie do konsoli wyrzuca

Code: Select all

INFO[1542290380.723797] Connection accepted: 172.18.0.1:59920 ClientSD: 13 Secure: 0
żadnych ostrzeżeń, błędów, nic. Oczywiście moje wirtualne urządzenie też się w chmurze nie pokazuje.

Czy ja w ogóle jakichś fundamentalnych zasad protokołu nie rozumiem czy tylko zawartość pól nie taka? Może ktoś się podzielić przykładem działającej prośby o rejestrację urządzenia? Jakiś dump pakietu, ja już sobie to porozkładam na części pierwsze ;)

PS. W ogóle to cześć, pierwszy mój post tutaj :)
User avatar
pzygmunt
Posts: 5766
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Contact:

Thu Nov 15, 2018 2:34 pm

Jeżeli serwer uzna, że klient przesyła niepoprawne dane to czeka kilka sekund na wypadek gdyby to był atak i zrywa połączenia be informowania o błędach. Wrzuć swój kod albo zerknij sobie na implementację protokołu w javie (ktoś chyba robił).
polakko
Posts: 2
Joined: Thu Nov 15, 2018 1:43 pm

Thu Nov 15, 2018 7:33 pm

Znalazłem gdzieś, że na końcu też ma być SUPLA TAG, ale nic to nie zmieniło ;) Przyjrzę się tej wersji w Javie, dzięki za wskazanie kierunku.
Post Reply