Я хотел бы иметь возможность расставлять приоритеты для исходящих данных/сообщений из службы WCF.
Вот основной сценарий:
- Клиент запрашивает у сервера поток данных. Поток данных живой, большой и потенциально бесконечный (данные мониторинга оборудования). Мы назовем это HighPriorityDataStream.
- Клиент запрашивает дополнительные данные. Мы назовем это LowPriorityData.
Пропускная способность ограничена (например, модем с коммутируемой связью или спутник). Очень важно, чтобы текущий HigPriorityDataStream не прерывался и не задерживался при выполнении запроса на LowPriorityData.
У меня уже есть устаревшая система на основе сокетов, в которой это достигается путем ручного управления порядком, в котором данные помещаются в буфер сокета. Данные с высоким приоритетом помещаются в буфер, и, если остается место, добавляются данные с более низким приоритетом, чтобы заполнить оставшуюся часть буфера.
Я пытаюсь реорганизовать этот процесс с помощью WCF... Я не знаю каких-либо нестандартных решений и думаю, что мне, возможно, придется написать собственное поведение канала, но я хотел бы выбрать мозги сообщество, прежде чем я пойду по этому пути :)