-
Похожий контент
-
- 1 ответ
- 1 528 просмотров
-
- 1 ответ
- 1 807 просмотров
-
- 4 ответа
- 2 399 просмотров
-
- 11 ответов
- 4 090 просмотров
-
- 31 ответ
- 5 787 просмотров
-
- 13 ответов
- 3 415 просмотров
-
- 1 ответ
- 1 436 просмотров
-
Ошибка на IOS: no mapping for the unicode character exists in the target multibyte code page
От notricky,
- 7 ответов
- 2 188 просмотров
-
- 10 ответов
- 3 970 просмотров
-
- 11 ответов
- 2 737 просмотров
-
-
Последние посетители 0 пользователей онлайн
- Ни одного зарегистрированного пользователя не просматривает данную страницу
Вопрос
Сергей Сергеев
Добрый всем день!
Уважаемые коллеги, столкнулись с такой проблемой.
Если есть DataSnap сервер, работающий в режиме Session, и клиент, написанный на Delphi с использованием TSqlConnection к серверу по протоколу DataSnap.
то все работает. Т.е. клиент открывает соединение, вызывает методы сервера , при этом на сервере, в экземпляре класса ServerMethod ( живущий от Коннекта, до его закрытия) - хранятся все данные сессии, ИД клиента, его настройки и т.д., и закрыват соединение, при этом сервер уничтожает экземпляр класса ServerMethod, со всеми данными.
Встал вопрос, как использовать этот же сервер, с другими клиентами, работающими по REST, например PHP, JS.
У DS сервера есть rest протокол, НО! после любого обращения по REST, сервер создает и уничтожает сразу класс ServerMethod ( т.е. работает в режиме LifiCicle = Invocation, о чем честно написано в документации)
Т.е. хранить данные подключения не получится.
Чтобы не переписывать сервер, решили попытаться прикинуться клиентом DS. Поставили между сервером DS и клиентом DS снифер. Выяснилось, что они общаются между собой по интерфейсу tunel.
т.е. вместо http://docwiki.embarcadero.com/RADStudio/Rio/en/DataSnap_REST_Messaging_Protocol
надо обращаться на http://host:port/datasnap/tunnel/[ClassName]/[MethodName]/[ParamValue]
вообщем там целая жизнь из команд PUT, GET..
Описания этого протока не нашел..
Может кто уже имел такой опыт по сопряжению REST клиента и DS сервера в режиме LifeCicle = Session.
В приложенном файле протоколе обмена
- открытие соединения c с клиента , без авторизации ( TSqConnect )
- выполнение метода LoginByKartVDevOsDOC с параметрами - внутренний логин в систему,
пс. а почему txt нельзя прикрепить?? пришлось зарарить..
protokol DataSnap.rar
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.