То, что у меня сейчас есть, это многопартийное приложение для нескольких чатов; 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