Fixing up (byte[],int,int) vs (ByteBuffer) approaches on events
This commit is contained in:
parent
deef1a3ac1
commit
9b31c35f15
|
@ -113,4 +113,16 @@ public class EventMethod
|
|||
{
|
||||
return this.paramTypes;
|
||||
}
|
||||
|
||||
public boolean isParameterPresent(Class<?> type)
|
||||
{
|
||||
for (Class<?> param : paramTypes)
|
||||
{
|
||||
if (param.equals(type))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,5 +1,8 @@
|
|||
package org.eclipse.jetty.websocket.api;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
import org.eclipse.jetty.util.BufferUtil;
|
||||
import org.eclipse.jetty.websocket.annotations.WebSocket;
|
||||
import org.eclipse.jetty.websocket.frames.BaseFrame;
|
||||
import org.eclipse.jetty.websocket.frames.BinaryFrame;
|
||||
|
@ -97,7 +100,19 @@ public class WebSocketEventDriver implements Parser.Listener
|
|||
if ((frame instanceof BinaryFrame) && (events.onBinary != null))
|
||||
{
|
||||
BinaryFrame bin = (BinaryFrame)frame;
|
||||
events.onBinary.call(websocket,connection,bin.getPayload());
|
||||
|
||||
if (events.onBinary.isParameterPresent(ByteBuffer.class))
|
||||
{
|
||||
// Byte buffer approach
|
||||
events.onBinary.call(websocket,connection,bin.getPayload());
|
||||
}
|
||||
else
|
||||
{
|
||||
// Byte array approach
|
||||
byte buf[] = BufferUtil.toArray(bin.getPayload());
|
||||
events.onBinary.call(websocket,connection,buf,0,buf.length);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue