В настоящее время я пытаюсь настроить что-то вроде этого:
- служба wcf на стороне сервера зависает и прослушивает через tcp для соединений из службы Windows на стороне клиента.
- когда соединение получено (клиент вызывает метод CheckIn в службе), служба получает канал обратного вызова через OperationContext.Current.GetCallbackChannel <T>
- этот канал хранится в коллекции вместе с уникальным ключом (в частности, я храню интерфейс обратного вызова, канал и ключ в списке <ClientConnection> , где каждый из них является свойством). Теперь вызовы
- теперь могут быть переданы в эту клиентскую службу на основе указанного уникального ключа
это работает сначала, но через некоторое время останавливается - я больше не могу передавать вызовы клиенту. Я предполагаю это, потому что соединение было удалено изнутри, и я пытаюсь работать с мертвым соединением.
что у меня есть следующие вопросы:
- Как я могу сказать wcf, что я хочу поддерживать эти tcp-соединения неограниченно (или как можно дольше)?
- Как я могу проверить с клиентской стороны, действительно ли мое соединение с сервером остается действительным, поэтому я могу его сбросить и снова зайти на сервер, если мое соединение обжарено?
Я могу думать о гениальных решениях, но я надеюсь, что кто-то здесь скажет мне правду.