本文整理汇总了Java中com.alibaba.dubbo.remoting.buffer.ChannelBuffers类的典型用法代码示例。如果您正苦于以下问题:Java ChannelBuffers类的具体用法?Java ChannelBuffers怎么用?Java ChannelBuffers使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ChannelBuffers类属于com.alibaba.dubbo.remoting.buffer包,在下文中一共展示了ChannelBuffers类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: handleWrite
import com.alibaba.dubbo.remoting.buffer.ChannelBuffers; //导入依赖的package包/类
@Override
public NextAction handleWrite(FilterChainContext context) throws IOException {
Connection<?> connection = context.getConnection();
GrizzlyChannel channel = GrizzlyChannel.getOrAddChannel(connection, url, handler);
try {
ChannelBuffer channelBuffer = ChannelBuffers.dynamicBuffer(1024); // 不需要关闭
Object msg = context.getMessage();
codec.encode(channel, channelBuffer, msg);
GrizzlyChannel.removeChannelIfDisconnectd(connection);
Buffer buffer = connection.getTransport().getMemoryManager().allocate(channelBuffer.readableBytes());
buffer.put(channelBuffer.toByteBuffer());
buffer.flip();
buffer.allowBufferDispose(true);
context.setMessage(buffer);
} finally {
GrizzlyChannel.removeChannelIfDisconnectd(connection);
}
return context.getInvokeAction();
}
开发者ID:dachengxi,项目名称:EatDubbo,代码行数:22,代码来源:GrizzlyCodecAdapter.java
示例2: test_Encode_Request
import com.alibaba.dubbo.remoting.buffer.ChannelBuffers; //导入依赖的package包/类
@Test
public void test_Encode_Request() throws IOException{
ChannelBuffer encodeBuffer = ChannelBuffers.dynamicBuffer(2014);
Channel channel = getCliendSideChannel(url);
Request request = new Request();
Person person = new Person();
request.setData(person);
codec.encode(channel, encodeBuffer, request);
//encode resault check need decode
byte[] data = new byte[encodeBuffer.writerIndex()];
encodeBuffer.readBytes(data);
ChannelBuffer decodeBuffer = ChannelBuffers.wrappedBuffer(data);
Request obj = (Request)codec.decode(channel, decodeBuffer);
Assert.assertEquals(request.isBroken(), obj.isBroken());
Assert.assertEquals(request.isHeartbeat(), obj.isHeartbeat());
Assert.assertEquals(request.isTwoWay(), obj.isTwoWay());
Assert.assertEquals(person, obj.getData());
}
开发者ID:dachengxi,项目名称:EatDubbo,代码行数:21,代码来源:ExchangeCodecTest.java
示例3: testMessageLengthExceedPayloadLimitWhenEncode
import com.alibaba.dubbo.remoting.buffer.ChannelBuffers; //导入依赖的package包/类
@Test
public void testMessageLengthExceedPayloadLimitWhenEncode() throws Exception {
Request request = new Request(1L);
request.setData("hello");
ChannelBuffer encodeBuffer = ChannelBuffers.dynamicBuffer(512);
AbstractMockChannel channel = getCliendSideChannel(url.addParameter(Constants.PAYLOAD_KEY, 4));
try {
codec.encode(channel, encodeBuffer, request);
Assert.fail();
} catch (IOException e) {
Assert.assertTrue(e.getMessage().startsWith("Data length too large: " + 6));
}
Response response = new Response(1L);
response.setResult("hello");
encodeBuffer = ChannelBuffers.dynamicBuffer(512);
channel = getServerSideChannel(url.addParameter(Constants.PAYLOAD_KEY, 4));
codec.encode(channel, encodeBuffer, response);
Assert.assertTrue(channel.getReceivedMessage() instanceof Response);
Response receiveMessage = (Response) channel.getReceivedMessage();
Assert.assertEquals(Response.BAD_RESPONSE, receiveMessage.getStatus());
Assert.assertTrue(receiveMessage.getErrorMessage().contains("Data length too large: "));
}
开发者ID:dachengxi,项目名称:EatDubbo,代码行数:24,代码来源:ExchangeCodecTest.java
示例4: testEecode_assertEquals
import com.alibaba.dubbo.remoting.buffer.ChannelBuffers; //导入依赖的package包/类
protected void testEecode_assertEquals(Object request,byte[] ret, boolean isServerside) throws IOException{
//init channel
Channel channel = isServerside? getServerSideChannel(url) : getCliendSideChannel(url);
ChannelBuffer buffer = ChannelBuffers.dynamicBuffer(1024);
codec.encode(channel, buffer, request);
byte[] data = new byte[buffer.readableBytes()];
buffer.readBytes(data);
Assert.assertEquals(ret.length, data.length);
for(int i=0;i<ret.length;i++){
if (ret[i] != data[i]){
Assert.fail();
}
}
}
开发者ID:dachengxi,项目名称:EatDubbo,代码行数:18,代码来源:TelnetCodecTest.java
示例5: testDecode_PersonWithEnterByte
import com.alibaba.dubbo.remoting.buffer.ChannelBuffers; //导入依赖的package包/类
private void testDecode_PersonWithEnterByte(byte[] enterbytes ,boolean isNeedmore) throws IOException{
//init channel
Channel channel = getServerSideChannel(url);
//init request string
Person request = new Person();
byte[] newbuf = join(objectToByte(request), enterbytes);
ChannelBuffer buffer = ChannelBuffers.wrappedBuffer(newbuf);
//decode
Object obj = codec.decode(channel, buffer);
if (isNeedmore){
Assert.assertEquals(Codec2.DecodeResult.NEED_MORE_INPUT , obj);
}else {
Assert.assertTrue("return must string ", obj instanceof String);
}
}
开发者ID:dachengxi,项目名称:EatDubbo,代码行数:17,代码来源:TelnetCodecTest.java
注:本文中的com.alibaba.dubbo.remoting.buffer.ChannelBuffers类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论