Трябва да напиша уеб приложение за чат Ajax в ASP.NET за приятел и имам въпрос: ако client1 изпрати съобщение до client2, как приложението трябва да изпрати съобщението до client2? Има ли по-добър начин от изпращането на заявки до сървъра, "питайки" дали има нови съобщения? Възможно ли е директно изпращане на съобщението до клиента?
Приложение за чат в ASP.NET
Отговори (3)
Най-доброто, което можете да направите, е да използвате Постоянна HTTP връзка. Начинът, по който Google прави с Google Talk на техния уебсайт GMAIL.
Не забравяйте, че HTTP е протокол без състояние и че всяка транзакция се извършва от клиента към сървъра.
Сървърът може да използва сесии, за да определи дали този клиент е „известен“, но що се отнася до изпращането на информация обратно към клиента чрез обикновен стар HTTP, мисля, че това е невъзможно (имам предвид от инициирана от сървър връзка, а не отговор на клиента)
Ще трябва да използвате Javascript, за да поискате информация от сървъра.
Ако искате обратното, бихте могли да използвате Java или Flash, но тогава трябва да помислите и за NAT тунелиране, прокси сървъри и всякакви други странни настройки, които клиентите могат да използват.
Не. Не мисля, че сървърът може да изпрати съобщение до браузъра на клиента. Ето как прилагам приложението за чат:
- client1 публикува съобщение чрез Ajax към сървър
- сървър го запишете в хранилище (използвам singleton обект за това случай)
- client2 получава съобщението от хранилището
- маркирайте съобщението като прочетено
Ще запазя регистрационни файлове за чат в база данни, след като сесията за чат приключи или изтече.