В какой-то момент для приема сообщений должен быть определенный клиентский код. Если пользователям нужно принимать сообщения на своих машинах, это звучит как ситуация с умным клиентом. В мире Windows существует интеллектуальный клиент, который осуществляет обмен сообщениями и позволяет пользователям работать с данными автономно.
Я не могу представить какую-либо одну библиотеку, которая позволила бы обмениваться сообщениями в разных операционных системах. Даже если используется синглтон, должен быть какой-то кроссплатформенный способ отправки / получения сообщений. Похоже, что клиентский конец всегда должен зависеть от ОС.
Возможно, можно попробовать Mono на стороне, не относящейся к Windows. Существует инструмент, который вы можете использовать, чтобы узнать, есть ли у сторонней библиотеки зависимости, которые не будут работать в Mono. Он был выпущен с инструментами Mono для Visual Studio. Он называется Mono Migration Analyzer (MoMA).