Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.005 c
1-1244383848
dmitry_12_08_73
2009-06-07 18:10
2010.03.28
При копировании экрана ее удаётся захватить окно со свойством For


2-1264626549
kalexi
2010-01-28 00:09
2010.03.28
Недопустимый дескриптор окна при закрытии приложения


2-1264675704
Starraider
2010-01-28 13:48
2010.03.28
Выравнивание колонок StringGrid


15-1263046404
Алекс555
2010-01-09 17:13
2010.03.28
Кто-то очень много ест .... памяти


1-1245677150
Дмитрий Белькевич
2009-06-22 17:25
2010.03.28
Возможно ли поменять resourcestring в рантайме?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский