|
|
|
Парциальная отправка данных клиенту
|
|||
|---|---|---|---|
|
#18+
На веб-форме - текстбокс и кнопка. Юзер вводит в текстбокс команду и сабмитит по нажатию кнопки. Эта команда является аргументом некоего консольного приложения на стороне сервера (приложение запускается через System.Diagnostics.Process.Start() от имени определенного юзера). Приложение в течении некоего времени после запуска (20-30 секунд) может отдавать данные клиенту. Собственно если реализовывать это всё синхронно проблем никаких. Захотелось для красоты сделать асинхронно через аякс (чтобы не ждать эти 20-30 секунд отправки страницы). Слив данных с приложения происходит через ивенты: Код: c# 1. 2. Как лучше организовать всё это дело, чтобы по генерации ивента на стороне сервера данные сливались клиенту? Использовать отдельный поток на стороне сервера? Про базовую работу с <asp: UpdatePanel> и <asp:ScriptManager> в курсе. Ткните носом, что почитать конкретно по этому вопросу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2012, 12:12:14 |
|
||
|
Парциальная отправка данных клиенту
|
|||
|---|---|---|---|
|
#18+
Гуглите Ajax long-polling. В кратце: в HTTP сервер может отдавать данные клиенту только в ответ на запрос, всвязи с этим ограничением сначала придумали Comet (long-polling), потом WebSockets. Последний не работает в IE8- и сквозь корпоративные прокси. Есть пара проектов, которые могут быть вам интересны: http://pokein.codeplex.com/ https://github.com/SignalR/SignalR ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2012, 13:00:35 |
|
||
|
Парциальная отправка данных клиенту
|
|||
|---|---|---|---|
|
#18+
Можно пойти еще дальше и погуглить на тему push сообщений. Вот пример: ASP.NET Push notifications с помощью SignalR Самое простое: по таймеру с клиента периодически опрашивать сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2012, 13:12:43 |
|
||
|
Парциальная отправка данных клиенту
|
|||
|---|---|---|---|
|
#18+
+ за "по таймеру с клиента периодически опрашивать сервер" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2012, 13:29:40 |
|
||
|
Парциальная отправка данных клиенту
|
|||
|---|---|---|---|
|
#18+
st_st+ за "по таймеру с клиента периодически опрашивать сервер" Предполагю следующий вопрос ТС'а: "Как?" :) ... Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2012, 15:23:39 |
|
||
|
Парциальная отправка данных клиенту
|
|||
|---|---|---|---|
|
#18+
МСУ, авторПредполагю следующий вопрос ТС'а: "Как?" :) Вы не угадали :), реализовал уже через таймер, пусть временно так поработает. В дальнейшем переведу на что-то другое, пока приглянулось Server Sent Events, разбираюсь в принципе работы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2012, 17:20:30 |
|
||
|
Парциальная отправка данных клиенту
|
|||
|---|---|---|---|
|
#18+
> В дальнейшем переведу на что-то другое, пока приглянулось Server Sent Events, разбираюсь в принципе работы :) "по таймеру с клиента периодически опрашивать сервер" - самое оно. Всё остальное - жалкие потуги. Пока редистейт третий не заработает или сокеты, об этом можно забыть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2012, 19:08:23 |
|
||
|
|

start [/forum/topic.php?fid=18&gotonew=1&tid=1359920]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
189ms |
get topic data: |
8ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 481ms |

| 0 / 0 |
