JMS - это просто API - и это API Java. JMS не протокол.
Чтобы клиенты на разных языках обменивались сообщениями друг с другом, вам просто нужен брокер сообщений, который поддерживает протоколы, которые имеют клиентов для ваших различных языков и платформ.
Например, ActiveMQ Artemis предоставляет свой собственный клиент JMS, который могут использовать ваши клиенты Java. Он также поддерживает протоколы, такие как STOMP, MQTT и AMQP, которые вы можете использовать со своего клиента C (например, Qpid Proton ). Сообщения, отправленные брокеру по одному протоколу, могут использоваться другим протоколом. Это одна из причин, по которой брокеры сообщений используются в качестве интеграционных платформ.