Как я могу динамически создавать конечные точки WCF против статической конечной точки, определенной в файле конфигурации? - PullRequest
1 голос
/ 28 декабря 2010

То, что у меня сейчас есть, это многопартийное приложение для нескольких чатов; P2P, который использует более старый метод .NET v2.0. Только интранет.

Я хочу узнать, как динамически создавать конечные точки WCF по сравнению со статической конечной точкой, определенной в файле конфигурации; Я могу сделать все остальное. Я буду использовать обычное сообщение вместо статического (предопределенного), так что это позволяет динамически передавать сообщения. Я буду использовать транспорт HTTP в WCF, чтобы отправлять и получать сообщения «простого старого XML» (POX); то есть сообщения, которые состоят исключительно из полезных нагрузок XML без какой-либо оболочки SOAP.

ИЛИ я должен просто предположить, что один и тот же базовый порт - это все, что нужно для каждой рабочей станции, и просто использовать его в качестве единственного порта, и что нет конфликта сетевых конфликтов (например, 2 гостевые рабочие станции одновременно взаимодействуют с одной и той же рабочей станцией хоста)

Я бы хотел перенести это в WCF, но конечная точка меня достала; например не могу понять это.

История: В моем текущем приложении чата используется более старый метод .NET v2.0. У меня около 50 рабочих станций, и каждому назначен статический порт, например 50100, 50200, 50300 и т. Д. Это позволяет использовать до 99 портов в диапазоне 50100 ~ 50199; порт 50100 является «базовым» портом, а порты 50101–50199 являются «хостовыми» портами, которые позволяют одновременно проводить до 99 «хостовых» сеансов чата. Рабочая станция может принимать несколько сеансов чата, скажем, на портах с 50101 по 50105. Они также могут «присоединяться» (быть гостем) в чатах в диапазоне портов других рабочих станций.

Каждая рабочая станция «слушает» свой базовый порт, например, 50100. Когда на свой базовый порт поступает запрос чата, запрашивающий «сервер» предоставляет динамически созданный порт для «присоединения» к чату в качестве гостя. В этом примере рабочая станция A (базовый порт 50100) получает приглашение от рабочей станции B присоединиться к порту 50235 (50200 - «базовый» порт рабочей станции B для входящих запросов чата). Кстати: я использую веб-сервис для отслеживания, когда пользователи онлайн или нет. Приложение чата регистрируется / отменяется регистрацией в веб-сервисе при открытии / выходе.

Текущая модель WFC С WCF я не вижу, как эту модель выше можно «перенести» (без каламбура) в модель WCF. Файл конфигурации показывает один порт для всех рабочих станций. Могут ли несколько чатов происходить на одном и том же порту как в качестве хоста, так и гостя? Я бы подумал, что нет.

Суть в том, как я могу динамически создавать конечные точки исключительно в коде C #, без статической конечной точки файла конфигурации, или я могу? Я не могу найти ни одного примера.

То есть порт базовой рабочей станции (конечная точка) будет «прослушивать» запросы чата; он создаст конечную точку для отправки запроса чата на базовый порт другой рабочей станции (конечную точку) и создаст конечную точку при приглашении в чат.

Thx,

GaryN

1 Ответ

2 голосов
/ 29 декабря 2010

Вы можете определить конечную точку службы в коде, а не в файле конфигурации, см. http://msdn.microsoft.com/en-us/library/ms731080.aspx

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