feat(新增): 🚀 客户端addListener方式发送消息
This commit is contained in:
parent
8275bdc281
commit
15ace8f636
|
@ -10,7 +10,7 @@
|
|||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="21" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_X" default="true" project-jdk-name="21" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
|
@ -77,4 +77,16 @@
|
|||
<version>1.6.14</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<configuration>
|
||||
<source>14</source>
|
||||
<target>14</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
<properties>
|
||||
<maven.compiler.source>22</maven.compiler.source>
|
||||
<maven.compiler.target>22</maven.compiler.target>
|
||||
<java.version>21</java.version>
|
||||
<java.version>22</java.version>
|
||||
<junit.version>3.8.1</junit.version>
|
||||
<mybatis-plus.version>3.5.6</mybatis-plus.version>
|
||||
<mysql.version>8.0.30</mysql.version>
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
package cn.bunny.service.netty.demo3;
|
||||
|
||||
import io.netty.bootstrap.Bootstrap;
|
||||
import io.netty.channel.Channel;
|
||||
import io.netty.channel.ChannelFuture;
|
||||
import io.netty.channel.ChannelFutureListener;
|
||||
import io.netty.channel.ChannelInitializer;
|
||||
import io.netty.channel.nio.NioEventLoopGroup;
|
||||
import io.netty.channel.socket.nio.NioSocketChannel;
|
||||
import io.netty.handler.codec.string.StringEncoder;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
@Slf4j
|
||||
public class ChannelClient {
|
||||
public static void main(String[] args) throws InterruptedException {
|
||||
ChannelFuture channelFuture = new Bootstrap()
|
||||
.group(new NioEventLoopGroup())
|
||||
.channel(NioSocketChannel.class)
|
||||
.handler(new ChannelInitializer<NioSocketChannel>() {
|
||||
@Override
|
||||
protected void initChannel(NioSocketChannel nioSocketChannel) throws Exception {
|
||||
nioSocketChannel.pipeline().addLast(new StringEncoder());
|
||||
}
|
||||
})
|
||||
.connect(new InetSocketAddress("localhost", 8080));
|
||||
// 使用 sycn 方法同步处理结果,五阻塞当前线程
|
||||
// channelFuture.sync();
|
||||
// 五阻塞向下执行获取Channel
|
||||
// Channel channel = channelFuture.channel();
|
||||
// channel.writeAndFlush("哈哈哈哈");
|
||||
// 使用addLietener 方法异步处理结果
|
||||
|
||||
channelFuture.addListener(new ChannelFutureListener() {
|
||||
@Override
|
||||
// 在nio线程连接建立好之后,会调用aperationComplate
|
||||
public void operationComplete(ChannelFuture channelFuture) throws Exception {
|
||||
Channel channel = channelFuture.channel();
|
||||
log.debug("当前的 Channel: {}", channel);
|
||||
channel.writeAndFlush("使用监听方法");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue