Роботы, плагины и скрипты к чату MyChat. Разработка альтернативных клиентов и различных утилит. Технические вопросы по программированию, замечания и предложения по развитию API
Аватара пользователя
SV
Пытаюсь запросить личный список пользователей так:
Код: Выделить всё
const
     MagicString            = #23#6;
     SendingFlags           = '00';
     cs_get_contacts_list   = '0014';

 if IdTCPClient1.Socket.Connected then
   IdTCPClient1.Socket.WriteLn(MagicString + cs_get_contacts_list + SendingFlags);




При этом отключает от сервера, что не так?
Аватара пользователя
Алексей Пикуров
День добрый.

Сначала нужно авторизоваться под своей учётной записью. Пока сервер не авторизовал пользователя и не проверил его права - ни о каких контактах не может быть и речи.
https://nsoft-s.com/mychat/MyChatJSONprotocol.txt
"Последовательность подключения к серверу и общая схема работы".
Аватара пользователя
SV
Это само собой:
Код: Выделить всё
800000{"ServPass":false,"ServName":"SV-\u041f\u041a","UpdatePacketVer":"","UTC":3,"RelDate":"09.09.2014","ProtocolVer":"2.6","PortNode":80,"PortHTTP":8083,"PortFTP":20000,"ServerVer":"5.7.0","Registered":"-","HelloMsg":"Welcome to -=MyChat=- Server\r\nCopyright (c) 2004-2014 by Alexey Pikurov \/ Network Software Solutions\r\nWWW: https:\/\/nsoft-s.com\r\nE-Mail: [email protected]\r\nSupport https:\/\/nsoft-s.com\/forum\r\nBlog: http:\/\/blog.nsoft-s.com","UpdatePacketSize":1,"YourIP":"127.0.0.1","HWID":"293383292_0_15-4-2-685332396","Free":false,"ForceUpdate":true,"CurrentDT":"25.11.2014.11.21.02.476"}
800200
801B00{"Days":0}
800400{"RightsSet":"101111111110000001100111101101100000111111100101010000001011001111001000011111111111","BlockedPlugins":[],"AllowedPlugins":[]}
800500{"Avatar":131,"UIN":2,"Sex":1,"AutoAwayTime":15,"InternalNick":"TestUser","Nick":"TestUser","LoginStyle":"login"}
800800{"3":{"CreatorUIN":0,"UsersCount":1,"SyncLogs":false,"Created":"25.11.2014.09.28.11","Secured":false,"Topic":"asd","Name":"123"},"2":{"CreatorUIN":0,"UsersCount":2,"SyncLogs":false,"Created":"25.11.2014.09.28.11","Secured":false,"Topic":"\u0412\u0442\u043e\u0440\u043e\u0439 \u043a\u0430\u043d\u0430\u043b","Name":"main"},"1":{"CreatorUIN":0,"UsersCount":2,"SyncLogs":true,"Created":"25.11.2014.09.28.11","Secured":false,"Topic":"\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b \u0447\u0430\u0442\u0430","Name":"\u0413\u043b\u0430\u0432\u043d\u044b\u0439"}}
801F00{"Head":"","Body":"0\u202211\u20224\u2022Customer Service\u20220\u20229\u2022East Division\u20220\u20228\u2022Main Department\u20220\u202211\u2022Marketing Department\u20220\u20227\u2022Catering Services\u20228\u20221\u2022Human Resources (HR)\u20228\u20222\u2022Management\u20228\u20225\u2022Payroll\u20228\u20226\u2022Plant Security\u20228\u202210\u2022Management\u20229\u20223\u2022Research and Development\u20229\u2022"}
801300{"UID":1,"Modes":"{\"MaxUsers\":-1,\"Modes\":\"0011101100\"}","Secured":false,"Operator":false,"Topic":"\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b \u0447\u0430\u0442\u0430","Sync":true,"Name":"\u0413\u043b\u0430\u0432\u043d\u044b\u0439","CRC32":0}
801600{"UID":1,"UsersList":"2\u20220\u2022Elisa\u20226\u20220\u20220\u20220\u20223\u2022TestUser2\u2022161\u20220\u20221\u20220\u2022"}
801500{"UID":1,"Modes":"{\"MaxUsers\":-1,\"Modes\":\"0011101100\"}","Operator":false}
801300{"UID":2,"Modes":"{\"MaxUsers\":-1,\"Modes\":\"0011101101\"}","Secured":false,"Operator":false,"Topic":"\u0412\u0442\u043e\u0440\u043e\u0439 \u043a\u0430\u043d\u0430\u043b","Sync":false,"Name":"main","CRC32":0}
801600{"UID":2,"UsersList":"2\u20220\u2022Elisa\u20226\u20220\u20220\u20220\u20223\u2022TestUser2\u2022161\u20220\u20221\u20220\u2022"}
801500{"UID":2,"Modes":"{\"MaxUsers\":-1,\"Modes\":\"0011101101\"}","Operator":false}
800E00
801A00{"UIN":2,"State":0}
807300{"UID":1,"2":{"Avatar":131,"Sex":1,"Op":false,"Nick":"TestUser","State":0}}
807300{"UID":2,"2":{"Avatar":131,"Sex":1,"Op":false,"Nick":"TestUser","State":0}}


Получил обработал данные, потом запрашиваю список личных пользователей, и вот тогда вылетает.
Аватара пользователя
SV
При этом общий список получаю нормально.
Аватара пользователя
Алексей Пикуров
Я понял. В функции на сервере ошибка, уже поправил.

Но список контактов сервер высылает автоматически, всем клиентам, которые уже авторизовались, специально спрашивать его не обязательно.
Аватара пользователя
SV
Хе, точно, сначала не заметил что он отправляет (801F00{"Head":"","Body":"0\u202211\u20224\u2022Customer Service\u20220\u20229\u2022East Division\u20220\u20228\u2022Main Department\u20220\u202211\u2022Marketing Department\u20220\u20227\u2022Catering Services\u20228\u20221\u2022Human Resources (HR)\u20228\u20222\u2022Management\u20228\u20225\u2022Payroll\u20228\u20226\u2022Plant Security\u20228\u202210\u2022Management\u20229\u20223\u2022Research and Development\u20229\u2022"}) я :x :lol:
И всё думал что отправит в ответ клиенту.
Последний раз редактировалось SV Вт ноя 25, 2014 1:29 pm, всего редактировалось 1 раз.
Аватара пользователя
Алексей Пикуров
Исправлено: viewtopic.php?p=16970#p16970
Аватара пользователя
SV
И всё равно, приходит при подключении только общий список контактов.
В принципе по логу видно:

Код: Выделить всё
800000{"ServPass":false,"ServName":"SV-\u041f\u041a","UpdatePacketVer":"","UTC":3,"RelDate":"09.09.2014","ProtocolVer":"2.6","PortNode":80,"PortHTTP":8083,"PortFTP":20000,"ServerVer":"5.7.0","Registered":"-","HelloMsg":"Welcome to -=MyChat=- Server\r\nCopyright (c) 2004-2014 by Alexey Pikurov \/ Network Software Solutions\r\nWWW: https:\/\/nsoft-s.com\r\nE-Mail: [email protected]\r\nSupport https:\/\/nsoft-s.com\/forum\r\nBlog: http:\/\/blog.nsoft-s.com","UpdatePacketSize":1,"YourIP":"127.0.0.1","HWID":"293383292_0_15-4-2-685332396","Free":false,"ForceUpdate":true,"CurrentDT":"25.11.2014.13.32.24.667"}
800200
801B00{"Days":0}
800400{"RightsSet":"101111111110000001100111101101100000111111100101010000001011001111001000011111111111","BlockedPlugins":[],"AllowedPlugins":[]}
800500{"Avatar":131,"UIN":2,"Sex":1,"AutoAwayTime":15,"InternalNick":"TestUser","Nick":"TestUser","LoginStyle":"login"}
800800{"3":{"CreatorUIN":0,"UsersCount":1,"SyncLogs":false,"Created":"25.11.2014.09.28.11","Secured":false,"Topic":"asd","Name":"123"},"2":{"CreatorUIN":0,"UsersCount":2,"SyncLogs":false,"Created":"25.11.2014.09.28.11","Secured":false,"Topic":"\u0412\u0442\u043e\u0440\u043e\u0439 \u043a\u0430\u043d\u0430\u043b","Name":"main"},"1":{"CreatorUIN":0,"UsersCount":2,"SyncLogs":true,"Created":"25.11.2014.09.28.11","Secured":false,"Topic":"\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b \u0447\u0430\u0442\u0430","Name":"\u0413\u043b\u0430\u0432\u043d\u044b\u0439"}}
[u][i]801F00{"Head":"","Body":"0\u202211\u20224\u2022Customer Service\u20220\u20229\u2022East Division\u20220\u20228\u2022Main Department\u20220\u202211\u2022Marketing Department\u20220\u20227\u2022Catering Services\u20228\u20221\u2022Human Resources (HR)\u20228\u20222\u2022Management\u20228\u20225\u2022Payroll\u20228\u20226\u2022Plant Security\u20228\u202210\u2022Management\u20229\u20223\u2022Research and Development\u20229\u2022"}[/i][/u]
801300{"UID":1,"Modes":"{\"MaxUsers\":-1,\"Modes\":\"0011101100\"}","Secured":false,"Operator":false,"Topic":"\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b \u0447\u0430\u0442\u0430","Sync":true,"Name":"\u0413\u043b\u0430\u0432\u043d\u044b\u0439","CRC32":0}
801600{"UID":1,"UsersList":"2\u20220\u2022Elisa\u20226\u20220\u20220\u20220\u20223\u2022TestUser2\u2022161\u20220\u20221\u20220\u2022"}
801500{"UID":1,"Modes":"{\"MaxUsers\":-1,\"Modes\":\"0011101100\"}","Operator":false}
801300{"UID":2,"Modes":"{\"MaxUsers\":-1,\"Modes\":\"0011101101\"}","Secured":false,"Operator":false,"Topic":"\u0412\u0442\u043e\u0440\u043e\u0439 \u043a\u0430\u043d\u0430\u043b","Sync":false,"Name":"main","CRC32":0}
801600{"UID":2,"UsersList":"2\u20220\u2022Elisa\u20226\u20220\u20220\u20220\u20223\u2022TestUser2\u2022161\u20220\u20221\u20220\u2022"}
801500{"UID":2,"Modes":"{\"MaxUsers\":-1,\"Modes\":\"0011101101\"}","Operator":false}
800E00
801A00{"UIN":2,"State":0}
807300{"UID":1,"2":{"Avatar":131,"Sex":1,"Op":false,"Nick":"TestUser","State":0}}
807300{"UID":2,"2":{"Avatar":131,"Sex":1,"Op":false,"Nick":"TestUser","State":0}}
Аватара пользователя
SV
Сам накосячил, в функции my_login соответственно подключался под другим пользователем.
Так что всё нормально работает.