Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.03.28;
Скачать: CL | DM;

Вниз

Как подключить нескольких клиентов?   Найти похожие ветки 

 
Plotnick   (2008-07-06 16:09) [0]

Есть задача - подключение к интернет-серверу с несколькими клиентами. Собственно, для каждого подключения создаю своего HTTP-клиента и по очереди подключаю. Но после того, как подключу первого (там есть авторизация - логин, пароль) все остальные при подключении к серверу, уже считаются подключенным с логином, паролем первого.
То есть, видимо как-то первым клиентом держится подключение что ли со всеми параметрами. А как бы так сделать, чтобы раздельно? И при этом, чтобы для каждого клиента соединение держалось?


 
umbra ©   (2008-07-07 10:54) [1]


> Но после того, как подключу первого (там есть авторизация
> - логин, пароль) все остальные при подключении к серверу,
>  уже считаются подключенным с логином, паролем первого.
> То есть, видимо как-то первым клиентом держится подключение
> что ли со всеми параметрами. А как бы так сделать, чтобы
> раздельно? И при этом, чтобы для каждого клиента соединение
> держалось?
>

что собой представляет клиент?


 
Поросенок Винни-Пух ©   (2008-07-07 11:12) [2]

Но после того, как подключу первого (там есть авторизация - логин, пароль) все остальные при подключении к серверу, уже считаются подключенным с логином, паролем первого.

Зачем считаются?


 
Plotnick   (2008-07-07 20:24) [3]

Ну есть компонент TAlWinInetHttpClient
Создаю динамически несколько экземпляров. С одного через Post вхожу на сайт передавая логин и пароль. Он естественно считается подключенным уже и возвращает страничку пользователя.

Когда я прочими остальными экземплярами коннекчусь к сайту, они сразу же загружают уже эту страничку, этого же пользователя, не спрашивая у меня логин и пароль.

А хотелось бы чтобы каждый мог подключиться с каким-то своим логином и паролем и работал как отдельный пользователь сайта.

Вот не знаю как это сделать.

Конечно, расчитывать, что каждый в курсе, что за компоненты я юзаю глупо, но я думаю, что дело тут не в каком-то конкретном компоненте, а в каких-то опциях с которыми компонент подключается к инету.


 
umbra ©   (2008-07-07 23:28) [4]


> Конечно, расчитывать, что каждый в курсе, что за компоненты
> я юзаю глупо, но я думаю, что дело тут не в каком-то конкретном
> компоненте, а в каких-то опциях с которыми компонент подключается
> к инету

Дело непонятно в чем. Можете предоставить логи хттп-запросов от ваших клиентов к серверу?


 
plotnick   (2008-07-08 16:25) [5]

Для начала тогда механизм, наверное имеет смысл.

Для проверки подключен клиент или нет вызывается
Get("сайт/my.html")

Если подключен, то возвращается страничка пользователя.
Если не подключен, то возвращается страничка в которой нужно вводить логин и пароль. Ну соответственно вызывается
Post("сайт/login.html",varlist)

где varlist - список переменных (логин, пароль и т.д.)

Если все успешно, то опять-таки возвращается страничка пользователя.

Далее проверяю подключение следующего клиента, то есть вызываю
Get("сайт/my.html")

и возвращается страничка предыдущего подключенного клиента, вместо того, чтобы выдать очередную страничку со вводом логина и пароля.

То есть, получается возможным подключение только одного клиента в один момент времени. Для того, чтобы подключить следующего, надо сделать
Get("сайт/logout.html")

Тогда при следующем подключении выдаст страничку с логином и паролем.
Вот.


 
umbra ©   (2008-07-08 16:31) [6]

очевидно, где-то засела кука, которую видят и используют все клиенты


 
umbra ©   (2008-07-08 16:33) [7]

или сервер принимает только одну сессию от айпи. или по рефереру определяет, что это тот же клиент.


 
Plotnick   (2008-07-08 19:07) [8]

Ну вот проверил сервер. То есть вошел с разных браузеров под разными логинами. Нормально все.


 
Plotnick   (2008-07-08 19:53) [9]

У самого компонента не так много свойств, чтобы поиграться.

wHttpIo_Async,                    
wHttpIo_From_Cache,                
wHttpIo_Offline,
wHttpIo_Cache_if_net_fail,        
wHttpIo_Hyperlink,                
wHttpIo_Ignore_cert_cn_invalid,    
wHttpIo_Ignore_cert_date_invalid,  
wHttpIo_Ignore_redirect_to_http,  
wHttpIo_Ignore_redirect_to_https,  
wHttpIo_Keep_connection,          
wHttpIo_Need_file,                
wHttpIo_No_auth,                  
wHttpIo_No_auto_redirect,
wHttpIo_No_cache_write,
wHttpIo_No_cookies,
wHttpIo_No_ui,
wHttpIo_Pragma_nocache,
wHttpIo_Reload,
wHttpIo_Resynchronize,
wHttpIo_Secure

Пробовал ставить wHttpIo_No_cookies - вообще коннектиться перестал. По умолчанию также у него устанавливается wHttpIo_Keep_connection.


 
umbra ©   (2008-07-08 23:52) [10]


> Пробовал ставить wHttpIo_No_cookies - вообще коннектиться
> перестал.


Значит сервер таки выдает куки.
Похоже, что ваш компонент - это некий наследник TWebBrowser, что означает общие куки. Используйте не браузер, а хттп-клиент типа TIdHTTP


 
plotnick   (2008-07-09 14:13) [11]

Только уточнить хочу, не "коннектиться перестал", а "логиниться перестал". Хотя в моем случае возможно, что и без разницы. Ладно, спасибо, попробую idhttp



Страницы: 1 вся ветка

Текущий архив: 2010.03.28;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.014 c
1-1245066677
RWolf
2009-06-15 15:51
2010.03.28
чтение из COM-порта - загадочное поведение программы


15-1262773736
NewZ
2010-01-06 13:28
2010.03.28
Драйверы Windows.


15-1262645563
Германн
2010-01-05 01:52
2010.03.28
Работа с Project Group


15-1262937611
@!!ex
2010-01-08 11:00
2010.03.28
Бесплатный NAT Proxy для Windows


15-1263072625
Юрий
2010-01-10 00:30
2010.03.28
С днем рождения ! 10 января 2010 воскресенье