Транспортная привязка WebSocket WCF - PullRequest
4 голосов
/ 22 сентября 2010

Недавно я обнаружил WebSockets и их возможное использование в моем проекте. В настоящее время я использую необработанные веб-сокеты, но я изучал возможность создания настраиваемой транспортной привязки / канала, который бы обрабатывал все и позволял мне размещать его в IIS.

Я начал работать над этим, но у меня возникают проблемы с выяснением, как заставить IIS пересылать мне соответствующие запросы. Я читал пример транспорта UDP от Microsoft, но он не размещает его так, как я, поэтому он не очень полезен в этом отношении. Пример создает UDP-сокет в самом коде WCF, что не похоже на правильный способ сделать это. Я мог бы сделать привязку вручную, создав порт для прослушивания, но тогда мне пришлось бы заново реализовать вещи, которые описаны в IIS / ASP.NET.

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

Я использовал .NET Reflector, чтобы просмотреть webHttpBinding и посмотреть, как они это делают. Кажется, они используют httpapi.dll для P / Invoke HttpCreateRequestQueue. Это то, что я хочу?

Это очень похоже на webBindingSocket в том, что он генерирует клиентский прокси JavaScript, но я буду автоматически генерировать методы обратного вызова, чтобы сервер мог легко вызывать методы в браузере.

Пример:
http: // localhost / WebSocket.svc - Служба метаданных
http: // localhost / WebSocket.svc / jsdebug - клиентский прокси JavaScript
http: // localhost / WebSocket.svc / stream - где находится WebSocket

Извините, если мой вопрос кажется запутанным, но я просто смотрю на тонны кода, пытаясь выяснить, как он работает. По сути, я хочу упростить использование WebSockets в своем коде, вместо того, чтобы беспокоиться о сериализации сообщений на сервер и с сервера и вызове правильного метода, я собираюсь обработать все это в WCF.

Спасибо

Ответы [ 2 ]

0 голосов
/ 27 сентября 2012
0 голосов
/ 28 апреля 2011

Microsoft работает над реализацией WebSocket, для получения дополнительной информации см .: http://blogs.msdn.com/b/interoperability/archive/2010/12/21/introducing-the-websockets-prototype.aspx

Команда WCF / Web публикует обновление на своем сайте Codeplex здесь: http://wcf.codeplex.com/

- larsw

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