我正在使用netty开发一个代理服务器,我的代理ProxyBackendHandler类如下所示。在channelRead方法中,我需要获取msg数据,并将其作为TextWebSocketFrame写入客户端。为此,我使用了StringBuilder和while循环来迭代ByteBuf。有没有人能给我一个更好的方法来做这件事,因为上面的代码在高数据负载时有很高的性能开销。
public class ProxyBackendHandler extends ChannelInboundHandlerAdapter {
private final Channel inboundChannel;
StringBuilder sReplyBuffer;
public ProxyBackendHandler(Channel inboundChannel) {
this.inboundChannel = inboundChannel;
sReplyBuffer = new StringBuilder(4000);
}
@Override
public void channelRead(final ChannelHandlerContext ctx, Object msg) {
// Please suggest a efficient implementation for read msg and pass it to writeAndFlush.
ByteBuf in = (ByteBuf) msg;
sReplyBuffer.setLength(0);
try {
while (in.isReadable()) {
sReplyBuffer.append((char) in.readByte());
}
} finally {
((ByteBuf) msg).release();
}
inboundChannel.writeAndFlush(new TextWebSocketFrame (sReplyBuffer.toString())).addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture future) {
if (future.isSuccess()) {
ctx.channel().read();
System.out.println("Sent To Client");
} else {
future.channel().close();
}
}
});
}
}
也许是这样的:
public class ProxyBackendHandler extends ChannelInboundHandlerAdapter {
private final Channel inboundChannel;
public ProxyBackendHandler(Channel inboundChannel) {
this.inboundChannel = inboundChannel;
}
@Override
public void channelRead(final ChannelHandlerContext ctx, Object msg) {
inboundChannel.writeAndFlush(new TextWebSocketFrame((ByteBuf) msg)).addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture future) {
if (future.isSuccess()) {
ctx.channel().read();
System.out.println("Sent To Client");
} else {
future.channel().close();
}
}
});
}
}
所以,我有一个拥有50000用户的应用程序。最近我更新了我的android studio,把SDK编译成了27。我做了一些改变,以支持android 8的变化,包括通知的变化(例如,通知应该有唯一的渠道)。在Android One手机上测试了这个(运行android 8)。一切都很顺利。在更新playstore上的应用程序后,我在android 8设备上看到了这些崩溃(主要是谷歌Pixel手机)
我对Netty是新手。我使用的是Netty 4.0.28。我指的是《Netty in Action》一书中提供的EchoServer示例。 一切正常。客户端在活动通道上向服务器发送消息,服务器打印接收到的消息并将相同的消息发回客户端。稍后客户端通道关闭,但服务器仍将侦听新连接。 我也想关闭服务器通道并将服务器绑定到新端口。 我应该如何关闭服务器通道?
我的web应用程序托管在Websphere application Server中。对于所有传出连接,我们在服务器级别配置了动态SSL越界。目前,由于修补程序,SSLv3已被禁用。现在,即使我们升级了SSL出站以支持TLSV1.2,并使用了基于TLS的通道MQ通道,到WMQ的连接仍然失败。详情如下。有人能帮忙吗? Websphere Server详细信息:
问题内容: 我不知道如何通过JSch Shell通道发送命令。 我这样做,但是不起作用: 然后我读这样的输入: 问题答案: 如果挂起,则意味着您的“ while”永远不会结束(考虑您的代码可能不太可能),或者正在等待其“源”,即线程原因造成的阻塞。 如果没有看到调试信息,我就无法对您的代码进行故障排除。但是作为建议,您尝试过吗?这个想法是将控制台输入传递到“您的”输出,以便您可以“编写”它。为此,
我正在尝试实现一组服务,这些服务暂时使用tcp实现,但最终将移动到udp。我将proto文件转换为rpc接口,但这需要服务器、rpc通道和rpc控制器。 我不知道什么是rpc控制器和rpc通道,更不用说如何实现它们了。有人能解释一下吗? 提前谢谢。
问题内容: 如何通过服务读取JSON文件? 我正在为测试目的而开发一个非常基本的Angular应用程序,并且现在只是尝试从JSON文件中读取数据。我将此代码放在服务中,以便在移动基于服务器的数据存储时可以更轻松地将其换出。 我和声明如下: 目前,我的定义如下: 我得到的控制台输出如下: 当我尝试调用my时收到错误消息(如果我理解正确的话),这应该将我的JSON文件放入其中。 我一直使用Angula