Я работаю в небольшой распределенной системе, полностью управляемой сообщениями. Прямо сейчас я обычно открываю сокет каждый раз, когда мне нужно что-то отправить, и сразу после этого закрываю. Состояние поддерживается только на стороне сервера (например, если от клиента в течение 5 минут не поступило сообщение, считайте его мертвым).
Тем не менее, я должен выполнить некоторое низкоуровневое планирование сообщений на клиенте также (если сообщение о состоянии не может достигнуть сервера, повторите попытку, если все еще не удается, предположим, что сервер не работает, переключиться на другой сервер и т. Д.) а также необходимость вручную прослушивать как клиент, так и сервер (плюс обмен информацией о том, как связаться с клиентом с сервера). Я также планирую добавить какую-то систему вещания, но это начинает накапливаться ... поэтому вопрос в том, есть ли какая-то существующая система шины / обмена сообщениями для .NET, которая работает с Mono и Microsoft, которая обрабатывает эти сообщения материал? Я посмотрел на NServiceBus, но это зависит от MSMQ (все еще верно?), Который более или менее поддерживается в Mono; В общем, NServiceBus уже выглядит слишком тяжеловесным. В идеале система должна поддерживать соединения 1: 1 и 1: N, надежно обрабатывать ошибки и сообщать о них, а также обладать некоторыми дополнительными функциями (сообщения в очереди, безопасность).