小编Kay*_*ayJ的帖子

Netty Handler没有打电话

我正在尝试使用简单的服务器 - 客户端应用程序进入Netty(代码见下文).

我正在努力解决两个问题:

  1. ConfigServerHandler和.正确调用ConfigClientHandler.但是FeedbackServerHandler分别是 从不调用FeedbackClientHandler.为什么?根据文档,应该一个接一个地调用处理程序.

  2. 我想要几个处理程序.这些处理程序中的每一个仅对另一方发送的一些消息感兴趣(例如,由客户端发送,由服务器接收).

    • 我应该在处理程序(channelRead)收到消息后过滤消息吗?我如何区分不同的字符串?对于不同的对象,通过解析它们应该非常容易.
    • 是否可以为SocketChannel定义不同的ChannelPipelines?
    • 更进一步?

谢谢你的帮助!

KJ

这是服务器的创建方式:

public void run() throws Exception {

    EventLoopGroup bossGroup = new NioEventLoopGroup(1);
    EventLoopGroup workerGroup = new NioEventLoopGroup();
    try {
        ServerBootstrap b = new ServerBootstrap();
        b.group(bossGroup, workerGroup)
         .channel(NioServerSocketChannel.class)
         .handler(new LoggingHandler(LogLevel.INFO))
         .childHandler(new ChannelInitializer<SocketChannel>() {
             @Override
             public void initChannel(SocketChannel ch) throws Exception {
                 ChannelPipeline p = ch.pipeline();
                 p.addLast(
                     new ObjectEncoder(),
                     new ObjectDecoder(ClassResolvers.cacheDisabled(null)),
                     new ConfigServerHandler(),
                     new FeedbackServerHandler());
             }
         });
      b.bind(mPort).sync().channel().closeFuture().sync();
    } finally {
        bossGroup.shutdownGracefully();
        workerGroup.shutdownGracefully();
    }
}
Run Code Online (Sandbox Code Playgroud)

其中一个Handler类(FeedbackServerHandler完全相同但解析为Integer):

public class ConfigServerHandler extends …
Run Code Online (Sandbox Code Playgroud)

java client-server netty

6
推荐指数
1
解决办法
3410
查看次数

如果在 settings.xml 中配置了镜像,则项目存储库将被忽略

我使用本指南创建了一个项目存储库:https : //devcenter.heroku.com/articles/local-maven-dependencies

如果我注释掉.m2 文件夹中文件中的mirrors定义,这会正常工作settings.xml。如果定义了镜像,则不考虑项目存储库。我是否也必须将其添加为镜像?如果可以在pom.xml.

pom.xml

<repositories>
    <repository>
        <id>repo</id>
        <url>file://${project.basedir}/repo</url>
    </repository>
</repositories>
Run Code Online (Sandbox Code Playgroud)

设置.xml

<mirrors>
<mirror>
  <id>de.companyname.repository.release</id>
  <mirrorOf>de.companyname.repository</mirrorOf>
  <url>https://repository.companyname.de/content/repositories/releases</url>
</mirror>
<mirror>
  <id>de.companyname.repository</id>
  <mirrorOf>de.companyname.repository</mirrorOf>
  <url>https://repository.companyname.de/content/repositories/snapshots</url>
</mirror>
<mirror>
  <id>nexus-else</id>
  <mirrorOf>*</mirrorOf>
  <url>http://nexus.companyname.de:8081/nexus/content/groups/public</url>
</mirror>
<mirror>
  <id>nexus</id>
  <mirrorOf>central</mirrorOf>
  <url>http://nexus.companyname.de:8081/nexus/content/groups/public</url>
</mirror>
<mirror>
  <id>nexus-snapshots</id>
  <mirrorOf>central-snapshots</mirrorOf>
  <url>http://nexus.companyname.de:8081/nexus/content/groups/public-snapshots</url>
</mirror>
</mirrors>
Run Code Online (Sandbox Code Playgroud)

repository maven-3 maven

3
推荐指数
1
解决办法
1192
查看次数

标签 统计

client-server ×1

java ×1

maven ×1

maven-3 ×1

netty ×1

repository ×1