jwamp
jwamp copied to clipboard
Java client and server implementation of WebSocket subprotocol WAMP
The WaitResponse.java class has a race condition: public synchronized T call() throws Exception { wait(waitfor); return result; } The result may already have arrived before the call() method is invokded....
In the class DefaultRPCSender, in method call(): public String call(String procId, ResultListener listener, long timeout, Object... args) the line for: ``` conn.sendMessage(msg); ``` Is invoked before the listener is registered...
I'm seeing the following scenario as a strong possibility: 1. Single dispatcher gets created in WampServerEndpointConfig 2. Client connects, server constructs a new WampServerEndpoint (with the dispatcher) 3. this calls...
It looks like adding support for JSR356 resulted in a loss of control of the end point constructor that gets called. This means that the ExtendedWampEndpoint(WampDispatcher dispatcher) contstructor can't be...
There seems to be a lot of plumbing (including reflection) to support registered message handlers, multiple message handlers, etc... in DefaultWampDispatcher. I'm wondering if this flexibility is necessary? It seems...
I think it would be a good idea to start discussion what annotation based action specification might look like. This may be controversial, but I thought I'd toss it out...
Remove WampBuilder.setActionMapping() and DefaultRPCManager.setActionMapping() methods. Instead, have an addAll() method that copies the values from an existing mapping. The current implementation allows a user to accidentally destroy previous configuration.
I had some thoughts on this part of the design: I think that the ideal end-user case would be to use an annotation based system, backed by a class implementation...
The CallAction interface defines a couple of enum values for unusual return types. I'm wondering what the purpose of these is? I may be misunderstanding the design intent, but if...
I've merged all issue related to TimeoutHashMap here. The idea is to use an alternative rather than "fixing" the actual implementation. merged from #23 #24 #25