Передача данных в Silverlight с сокетами через прокси? - PullRequest
1 голос
/ 04 июня 2010

Мне нужно сделать приложение Silverlight 4 для браузера, которое может получать push-сообщения с сервера. Я предполагаю, что использование сокетов является лучшим способом, а также позволит соединению между сервером и клиентом передавать данные и обновлять страницу. Но я беспокоюсь о брандмауэрах и / или прокси-серверах. Можно ли использовать технологию push или вообще сокеты, пока за прокси-сервером можно заблокировать все, что не на порту 80? Или возможно иметь сокетные соединения на порту 80, который был бы идеален, потому что это обошло бы и прокси и межсетевой экран. Я знаю, что для silverlight доступен набор портов, поэтому я имею в виду обходной путь.

Пока что по теме ... Будет ли отправка массового блока данных из silverlight быстрее через сокеты, ASP.NET AJAX или соединение с веб-службой ASMX?

Спасибо за тонну!

Ответы [ 2 ]

1 голос
/ 04 июня 2010

Вот отличная статья о дуплексном опросе WCF (HTTP Long polling или COMET Style), который надеется, что это поможет. Это немного устарело из-за содержания, вы начнете.

http://tomasz.janczuk.org/2009/08/performance-of-http-polling-duplex.html

0 голосов
/ 04 июня 2010

Невозможно подключиться к сокету TCP с портом 80 в Silverlight. Поскольку вы заявляете, что существует ограниченный диапазон портов (4502-4534), к которым вы можете подключиться, и все.

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

Скорость передачи данных во многом зависит от ее кодирования. (Я не думаю, что AJAX здесь на картинке). В конечном счете сокеты с двоичным кодированием имеют тенденцию быть немного быстрее, особенно для частых небольших передач. Принимая во внимание, что HTTP страдает с немного большими накладными расходами, тем не менее, у вас гораздо меньше проблем с брандмауэром.

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

Рассматривали ли вы использование WCF PollingDuplex Channel? Это позволяет вам создать «толчок» из механизма сервера, придерживаясь HTTP. Кроме того, большая часть сантехники сделана для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...