本文整理汇总了Java中io.netty.bootstrap.Bootstrap.handler方法的典型用法代码示例。如果您正苦于以下问题:Java Bootstrap.handler方法的具体用法?Java Bootstrap.handler怎么用?Java Bootstrap.handler使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类io.netty.bootstrap.Bootstrap
的用法示例。
在下文中一共展示了Bootstrap.handler方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: open
import io.netty.bootstrap.Bootstrap; //导入方法依赖的package包/类
@Override
public void open() {
EventLoopGroup eventLoop = new NioEventLoopGroup();
bootstrap = new Bootstrap();
bootstrap.group(eventLoop);
bootstrap.channel(NioSocketChannel.class);
bootstrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 3 * 1000);
bootstrap.option(ChannelOption.SO_KEEPALIVE, true);
bootstrap.handler(new ChannelInitializer<SocketChannel>() {
@Override
public void initChannel(SocketChannel ch) throws Exception {
ch.pipeline()
// .addLast("logging",new LoggingHandler(LogLevel.INFO))
.addLast("decoder", new ObjectDecoder(ClassResolvers.cacheDisabled(getClass().getClassLoader()))) // in 1
.addLast("handler", new ClientReadHandler()) // in 2
.addLast("encoder", new ObjectEncoder())// out 3
.addLast("idleStateHandler", new IdleStateHandler(0, 1, 0))
.addLast(new ClientIdleHandler());
}
});
}
示例2: connect
import io.netty.bootstrap.Bootstrap; //导入方法依赖的package包/类
@Override
public void connect() throws IOException, InterruptedException {
workerGroup = new NioEventLoopGroup();
Bootstrap b = new Bootstrap();
b.group(workerGroup);
b.channel(NioSocketChannel.class);
b.option(ChannelOption.SO_KEEPALIVE, true);
b.handler(new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel ch) throws Exception {
ChannelPipeline p = ch.pipeline();
p.addLast(
//new LoggingHandler(LogLevel.INFO),
new MsgEncoder(),
new MsgDecoder(),
new NettyClientHandler()
);
}
});
ChannelFuture f = b.connect(address, port).sync();
channel = f.channel();
}
示例3: connectAsync
import io.netty.bootstrap.Bootstrap; //导入方法依赖的package包/类
public ChannelFuture connectAsync(String host, int port, String remoteId, boolean discoveryMode) {
ethereumListener.trace("Connecting to: " + host + ":" + port);
EthereumChannelInitializer ethereumChannelInitializer = ctx.getBean(EthereumChannelInitializer.class, remoteId);
ethereumChannelInitializer.setPeerDiscoveryMode(discoveryMode);
Bootstrap b = new Bootstrap();
b.group(workerGroup);
b.channel(NioSocketChannel.class);
b.option(ChannelOption.SO_KEEPALIVE, true);
b.option(ChannelOption.MESSAGE_SIZE_ESTIMATOR, DefaultMessageSizeEstimator.DEFAULT);
b.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, config.peerConnectionTimeout());
b.remoteAddress(host, port);
b.handler(ethereumChannelInitializer);
// Start the client.
return b.connect();
}
示例4: connectAsync
import io.netty.bootstrap.Bootstrap; //导入方法依赖的package包/类
public ChannelFuture connectAsync(String host, int port, String remoteId, boolean discoveryMode) {
ethereumListener.trace("Connecting to: " + host + ":" + port);
EthereumChannelInitializer ethereumChannelInitializer = ethereumChannelInitializerFactory.newInstance(remoteId);
ethereumChannelInitializer.setPeerDiscoveryMode(discoveryMode);
Bootstrap b = new Bootstrap();
b.group(workerGroup);
b.channel(NioSocketChannel.class);
b.option(ChannelOption.SO_KEEPALIVE, true);
b.option(ChannelOption.MESSAGE_SIZE_ESTIMATOR, DefaultMessageSizeEstimator.DEFAULT);
b.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, config.peerConnectionTimeout());
b.remoteAddress(host, port);
b.handler(ethereumChannelInitializer);
// Start the client.
return b.connect();
}
示例5: run
import io.netty.bootstrap.Bootstrap; //导入方法依赖的package包/类
public void run() {
workerGroup = new NioEventLoopGroup();
try {
Bootstrap b = new Bootstrap();
b.group(workerGroup);
b.channel(NioSocketChannel.class);
// b.option(ChannelOption.SO_KEEPALIVE, true);
b.handler(new ChannelInitializer<SocketChannel>() {
@Override
public void initChannel(SocketChannel ch) throws Exception {
ChannelPipeline pipeline = ch.pipeline();
pipeline.addLast("frameDecoder", new LengthFieldBasedFrameDecoder(65536, 0, 4, 0, 4));
pipeline.addLast("frameEncoder", new LengthFieldPrepender(4));
pipeline.addLast("decoder", new MsgPackDecode());
pipeline.addLast("encoder", new MsgPackEncode());
pipeline.addLast(new ClientHandler());
}
});
channel = b.connect(clientProperties.getServerHost(), clientProperties.getServerPort()).sync().channel();
status = Status.START;
channel.closeFuture().sync();
} catch (Exception e) {
e.printStackTrace();
}
status = Status.STOP;
}
示例6: getBootstrap
import io.netty.bootstrap.Bootstrap; //导入方法依赖的package包/类
/**
* Init Bootstrap
*/
public static final Bootstrap getBootstrap() {
EventLoopGroup group = new NioEventLoopGroup();
Bootstrap b = new Bootstrap();
b.group(group);
b.channel(NioSocketChannel.class);
b.handler(new ChannelInitializer<Channel>() {
@Override
protected void initChannel(Channel ch) throws Exception {
ChannelPipeline pipeline = ch.pipeline();
pipeline.addLast("frameDecoder", new ProtobufVarint32FrameDecoder());
pipeline.addLast("decoder", new ProtobufDecoder(MessageBuf.JMTransfer.getDefaultInstance()));
pipeline.addLast("frameEncoder", new ProtobufVarint32LengthFieldPrepender());
pipeline.addLast("encoder", new ProtobufEncoder());
pipeline.addLast("handler", new TcpClientHandler());
}
});
b.option(ChannelOption.SO_KEEPALIVE, true);
return b;
}
示例7: connect
import io.netty.bootstrap.Bootstrap; //导入方法依赖的package包/类
@Override
public Connection connect(Address address, Consumer<TransportChannel> successEvent) {
Bootstrap bootstrap = bootstrap();
final SocketAddress socketAddress = InetSocketAddress.createUnresolved(address.getHost(), address.getPort());
bootstrap.handler(new ChannelInitializer<Channel>() {
@Override
protected void initChannel(Channel ch) throws Exception {
ch.pipeline()
.addLast(new Encoder(serializer))
.addLast(new Decoder(serializer))
.addLast(new ConsumerHandler());
}
});
ChannelFuture connectChannelFuture = bootstrap.connect(socketAddress);
connectChannelFuture.addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture future) throws Exception {
if (future.isSuccess()) {
TransportChannel transportChannel = NettyChannel.getInstance(future.channel());
successEvent.accept(transportChannel);
}
}
});
return new NettyConnection(connectChannelFuture);
}
示例8: createBootstrap
import io.netty.bootstrap.Bootstrap; //导入方法依赖的package包/类
private Bootstrap createBootstrap(RedisClientConfig config, Type type) {
Bootstrap bootstrap = new Bootstrap()
.channel(config.getSocketChannelClass())
.group(config.getGroup())
.remoteAddress(addr);
bootstrap.handler(new RedisChannelInitializer(bootstrap, config, this, channels, type));
bootstrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, config.getConnectTimeout());
bootstrap.option(ChannelOption.SO_KEEPALIVE, config.isKeepAlive());
bootstrap.option(ChannelOption.TCP_NODELAY, config.isTcpNoDelay());
return bootstrap;
}
示例9: createBootstrap
import io.netty.bootstrap.Bootstrap; //导入方法依赖的package包/类
private Bootstrap createBootstrap() {
final Bootstrap bootstrap = new Bootstrap();
bootstrap.group(new NioEventLoopGroup(workerCount, daemonThreadFactory(settings, TRANSPORT_CLIENT_BOSS_THREAD_NAME_PREFIX)));
bootstrap.channel(NioSocketChannel.class);
bootstrap.handler(getClientChannelInitializer());
bootstrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, Math.toIntExact(defaultConnectionProfile.getConnectTimeout().millis()));
bootstrap.option(ChannelOption.TCP_NODELAY, TCP_NO_DELAY.get(settings));
bootstrap.option(ChannelOption.SO_KEEPALIVE, TCP_KEEP_ALIVE.get(settings));
final ByteSizeValue tcpSendBufferSize = TCP_SEND_BUFFER_SIZE.get(settings);
if (tcpSendBufferSize.getBytes() > 0) {
bootstrap.option(ChannelOption.SO_SNDBUF, Math.toIntExact(tcpSendBufferSize.getBytes()));
}
final ByteSizeValue tcpReceiveBufferSize = TCP_RECEIVE_BUFFER_SIZE.get(settings);
if (tcpReceiveBufferSize.getBytes() > 0) {
bootstrap.option(ChannelOption.SO_RCVBUF, Math.toIntExact(tcpReceiveBufferSize.getBytes()));
}
bootstrap.option(ChannelOption.RCVBUF_ALLOCATOR, recvByteBufAllocator);
final boolean reuseAddress = TCP_REUSE_ADDRESS.get(settings);
bootstrap.option(ChannelOption.SO_REUSEADDR, reuseAddress);
bootstrap.validate();
return bootstrap;
}
示例10: start
import io.netty.bootstrap.Bootstrap; //导入方法依赖的package包/类
public static void start(MemberEventLoop loop) throws InterruptedException {
String host = "127.0.0.1";
int port = 9005;
EventLoopGroup workerGroup = new NioEventLoopGroup();
try {
Bootstrap b = new Bootstrap();
b.group(workerGroup);
b.channel(NioSocketChannel.class);
b.option(ChannelOption.SO_KEEPALIVE, true);
b.handler(new ChannelInitializer<SocketChannel>() {
@Override
public void initChannel(SocketChannel ch) throws Exception {
ch.pipeline().addLast(new ProtobufVarint32FrameDecoder());
ch.pipeline().addLast(new ProtobufDecoder(SocketMessage.getDefaultInstance()));
ch.pipeline().addLast(new ProtobufVarint32LengthFieldPrepender());
ch.pipeline().addLast(new ProtobufEncoder());
ch.pipeline().addLast(new IdleStateHandler(0, 5, 10, TimeUnit.SECONDS));
ch.pipeline().addLast(new BusinessRouterHandler(loop));
}
});
// Start the client.
ChannelFuture f = b.connect(host, port).sync();
// Wait until the connection is closed.
f.channel().closeFuture().sync();
} finally {
workerGroup.shutdownGracefully();
}
}
示例11: start
import io.netty.bootstrap.Bootstrap; //导入方法依赖的package包/类
@Override
public boolean start() {
boolean result = false;
do {
TcpRouteDefinition route = definition.getRoute();
if(null == route) {
break;
}
if(route.getAddress() == null || route.getAddress().isEmpty()) {
break;
}
if(route.getPort() == -1) {
break;
}
try {
Bootstrap bootstrap = new Bootstrap();
bootstrap.channel(inbound.getClass());
bootstrap.group(inbound.eventLoop());
bootstrap.handler(new TcpProxyClientChannelInitializer(definition, this));
bootstrap.option(ChannelOption.SO_KEEPALIVE, true);
bootstrap.option(ChannelOption.AUTO_READ, false);
ChannelFuture future = bootstrap.connect(route.getAddress(), route.getPort());
//forwarder = future.sync().channel();
outbound = future.channel();
future.addListener(listener);
} catch (Exception e) {
log.error("Failed starting tcp proxy client.", e);
outbound = null;
break;
}
result = true;
} while (false);
return result;
}
示例12: start
import io.netty.bootstrap.Bootstrap; //导入方法依赖的package包/类
@Override
public boolean start() {
boolean result = false;
do {
List<HttpRouteDefinition> routes = definition.getRoutes();
for(HttpRouteDefinition route: routes) {
if (null == route) {
break;
}
if (route.getInputUrl() == null || route.getInputUrl().isEmpty()) {
break;
}
if (route.getScheme().equals(null)) {
break;
}
try {
Bootstrap bootstrap = new Bootstrap();
bootstrap.channel(inbound.getClass());
bootstrap.group(inbound.eventLoop());
bootstrap.handler(new HttpProxyClientChannelInitializer(definition, this));
bootstrap.option(ChannelOption.SO_KEEPALIVE, true);
bootstrap.option(ChannelOption.AUTO_READ, false);
ChannelFuture future = bootstrap.connect(route.getHost(), route.getPort());
//forwarder = future.sync().channel();
outbound = future.channel();
future.addListener(listener);
} catch (Exception e) {
log.error("Failed starting http proxy client.", e);
outbound = null;
break;
}
}
result = true;
} while (false);
return result;
}
示例13: connect
import io.netty.bootstrap.Bootstrap; //导入方法依赖的package包/类
public void connect() {
workerGroup = new NioEventLoopGroup();
Bootstrap b = new Bootstrap();
b.group(workerGroup);
b.channel(NioSocketChannel.class);
b.option(ChannelOption.SO_KEEPALIVE, true);
b.handler(new ChannelInitializer<SocketChannel>() {
@Override protected void initChannel(SocketChannel ch) throws Exception {
ch.pipeline().addFirst(new LoggingHandler(LogLevel.DEBUG));
ch.pipeline().addLast(new LengthFieldPrepender(4));
ch.pipeline().addLast(new FrameEncoder());
ch.pipeline().addLast(new LengthFieldBasedFrameDecoder(Integer.MAX_VALUE, 0, 4, 0, 4));
ch.pipeline().addLast(new ChannelInboundHandlerAdapter() {
@Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
ByteBuf buf = (ByteBuf) msg;
messageHandler.accept(buf);
}
});
}
});
ChannelFuture channelFuture = b.connect(host, port).syncUninterruptibly();
channel = channelFuture.channel();
}
示例14: makeObject
import io.netty.bootstrap.Bootstrap; //导入方法依赖的package包/类
@Override
public Connection makeObject(Endpoint ep) throws Exception {
Bootstrap bootstrap = new Bootstrap();
bootstrap.option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT);
bootstrap.option(ChannelOption.WRITE_BUFFER_HIGH_WATER_MARK, 10 * 64 * 1024);
bootstrap.option(ChannelOption.WRITE_BUFFER_LOW_WATER_MARK, 10 * 32 * 1024);
bootstrap.option(ChannelOption.SO_SNDBUF, 1048576);
bootstrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 1000);
bootstrap.group(clientGroup);
// TODO: Make this faster:
// http://normanmaurer.me/presentations/2014-facebook-eng-netty/slides.html#37.0
bootstrap.channel(clientChannelClass);
bootstrap.option(ChannelOption.SO_KEEPALIVE, true);
if (enableNettyTls) {
bootstrap.handler(new SslClientCommunicationChannelInitializer());
} else {
bootstrap.handler(new OnosCommunicationChannelInitializer());
}
// Start the client.
CompletableFuture<Channel> retFuture = new CompletableFuture<>();
ChannelFuture f = bootstrap.connect(ep.host().toString(), ep.port());
f.addListener(future -> {
if (future.isSuccess()) {
retFuture.complete(f.channel());
} else {
retFuture.completeExceptionally(future.cause());
}
});
log.debug("Established a new connection to {}", ep);
return new Connection(retFuture);
}
示例15: NettyTransceiver
import io.netty.bootstrap.Bootstrap; //导入方法依赖的package包/类
public NettyTransceiver(
Configuration conf,
InetSocketAddress addr,
EventLoopGroup workerGroup,
PooledByteBufAllocator pooledAllocator,
Class<? extends Channel> socketChannelClass,
int connectTimeoutMillis) throws IOException {
this.conf = conf;
this.connectTimeoutMillis = connectTimeoutMillis;
bootstrap = new Bootstrap();
bootstrap
.group(workerGroup)
.channel(socketChannelClass)
// Disable Nagle's Algorithm since we don't want packets to wait
.option(ChannelOption.TCP_NODELAY, true)
.option(ChannelOption.SO_KEEPALIVE, true)
.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, connectTimeoutMillis)
.option(ChannelOption.ALLOCATOR, pooledAllocator);
// Configure the event pipeline factory.
bootstrap.handler(new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel ch) throws Exception {
ch.pipeline()
.addLast("encoder", NettyFrameEncoder.INSTANCE)
.addLast("frameDecoder", NettyUtils.createFrameDecoder())
.addLast("decoder", NettyFrameDecoder.INSTANCE)
.addLast(
"readTimeout",
new ReadTimeoutHandler(NettyTransceiver.this.conf.getInt(
AngelConf.CONNECTION_READ_TIMEOUT_SEC,
AngelConf.DEFAULT_CONNECTION_READ_TIMEOUT_SEC)))
.addLast("handler", new MLClientMLHandler());
}
});
remoteAddr = addr;
// Make a new connection.
try {
getChannel();
} catch (IOException e) {
LOG.debug("connect error, e: " + e);
throw e;
}
}