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