Как подключиться DataSnap клиенту через прокси сервер к DataSnap серверу?

oakrom

Member
Joined
Aug 2, 2014
Messages
20
Reaction score
4
Здравствуйте!
Не знаю как решить проблему, бьюсь уже несколько дней, перекопал интернет но решение еще не нашел.
Проблема заключается вот в чем:
Решил сделать чатик с кэлбэком на DataSnap (IDE Delphi XE6), создал простенький DataSnap сервер (tcp/ip+http) без БД, а также клиент к нему. Все четко работает если это все дело запускать по локальной сети(tcp/ip) или через internet (http). Проблемы возникают когда запускаю через http и у клиента стоит прокси сервер, клиент просто напросто не может подключится к серваку. Пробовал указать IP прокси и порт в настройках компоненты SQLConnection.Driver.DSProxyHost и SQLConnection.Driver.DSProxyPort но без изменений... :( Кто нибудь сталкивался с этим? Как обойти прокси сервер клиенту DataSnap? :bac:

Hello!
I do not know how to solve the problem, I searched solution for this problem several days, I shoveled the Internet but have not yet found a solution.
The problem is this:
I decided to make a chat with callback on DataSnap technology (IDE Delphi XE6), has created a simple DataSnap server (tcp/ip + http) without the database, and client also. All works fine if the whole thing run on a local network (tcp/ip) or via the Internet (http). Problems arise when run over HTTP and the client has a HTTP proxy server, the client can not connect to my DataSnap server. I tried to enter the IP and port of the proxy server to component TSQLConnection.Driver.DSProxyHost and SQLConnection.Driver.DSProxyPort but no changes ... Has anyone knows solution about this problem? How to connect DataSnap client to DataSnap server via proxy server?
 
Last edited by a moderator:

oakrom

Member
Joined
Aug 2, 2014
Messages
20
Reaction score
4
Вообщем покопался несколько дней, проверил и протестил на несколько проксятниках, и решил прослушать request и response при коннекте толстого клиента к моему серверу. В событии HTTPTrace компоненты DSHTTPService1 решил отследить параметры ARequest и AResponse. Вот в этой процедуре
Code:
procedure TServerContainer1.DSHTTPService1HTTPTrace(Sender: TObject;
  AContext: TDSHTTPContext; ARequest: TDSHTTPRequest;
  AResponse: TDSHTTPResponse);
Заметил один интересный момент, когда клиент коннектится без прокси сервера в ARequest.URI приходит значение "/datasnap/tunnel" и все проходит отлично и сервер отвечает 200 ОК, вот когда клиент коннектится через прокси сервер то в ARequest.URI приходит значение "http://92.214.32.235:8909/datasnap/tunnel" и сервер генерирует ошибку и возвращает сообщение "Expected datasnap context in request http://92.214.32.235:8909/datasnap/tunnel". Есть у кого нибудь идеи насчет этого?
 
Top