Q:

JMS clients should only be java based? 

Per wiki link JMS is a Java Message Oriented Middleware (MOM) API1 for sending messages between two or more clients
Question :- Is it mandatory that client(Producer/Consumer) should be implemented in java or client can be implemented in any technology  like dot-net/c++ ?  Can browser also be a client  provided it sends the message expected by java MOM
Update :-
JMS can use variety of protocols to send/receive the message.  For example :- If I consider the case of ActiveMQ  it support number of protocols given at active MQ protocols where as  default protocol is AMQP. 
So mine understanding with default protocol AMQP, Dot-net/C++ can be client  but not browser(as it communicates over http only).  
But if i configure the ActiveMQ to use Rest protocol probably anyone(browser/Dot-Net/C++) can be client .  Is that correct ? 

A:

JMS is an API specification.  It's not mandatory to implement the API specification in Java, it can be done in other languages too.  Many of the JMS implementations provide .NET, C++/C etc implementations for JMS.  For example IBM MQ provides JMS API implementation in .NET and C/C++ languages and it's called XMS.