Главная страница
    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.261 c
15-1262805333
Fenik
2010-01-06 22:15
2010.03.28
Нелегко быть президентом Украины


2-1264276321
TStas
2010-01-23 22:52
2010.03.28
Как поменять порядок вкладок у PageControl в RunTime


4-1231749046
kalexi
2009-01-12 11:30
2010.03.28
Какие флаги нужны для создания формы без кнопки на панели задач?


2-1264136473
Дмитрий С
2010-01-22 08:01
2010.03.28
Регистр букв в AutoComplete в TComboBox


2-1264422307
Anonim
2010-01-25 15:25
2010.03.28
доступ к списку Tlist





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский