直接向用户发送消息
Send message directly to user
我希望通过 IP 地址直接向客户发送消息。我目前只能在处理程序中调用 ChannelRead0
并从那里获取上下文时发送消息:
protected override void ChannelRead0(IChannelHandlerContext ctx, DatagramPacket packet) {
ctx.WriteAsync(new DatagramPacket(buffer, packet.Sender));
}
我的引导程序:
var bootstrap = new Bootstrap();
bootstrap
.Group(group)
.Channel<SocketDatagramChannel>()
.Option(ChannelOption.SoBroadcast, true)
.Handler(new LoggingHandler("SRV-LSTN"))
.Handler(new ActionChannelInitializer<IChannel>(channel => {
channel.Pipeline.AddLast("UDPServer", new protocols.UDP());
}));
IChannel boundChannel = await bootstrap.BindAsync(8888);
我也希望能够从此功能之外发送消息。有什么方法可以从这个函数/class 外部向客户端发送消息?我曾尝试写信给 boundChannel
,但它似乎没有发送 .write
或 .writeAsync
函数。
我正在使用从 Java.
移植的 DotNetty 库 (https://github.com/Azure/DotNetty)
一个IChannel
有一个WriteAndFlushAsync
方法可以用来写消息,这类似于Netty Java版本中的writeAndFlush
方法。
我希望通过 IP 地址直接向客户发送消息。我目前只能在处理程序中调用 ChannelRead0
并从那里获取上下文时发送消息:
protected override void ChannelRead0(IChannelHandlerContext ctx, DatagramPacket packet) {
ctx.WriteAsync(new DatagramPacket(buffer, packet.Sender));
}
我的引导程序:
var bootstrap = new Bootstrap();
bootstrap
.Group(group)
.Channel<SocketDatagramChannel>()
.Option(ChannelOption.SoBroadcast, true)
.Handler(new LoggingHandler("SRV-LSTN"))
.Handler(new ActionChannelInitializer<IChannel>(channel => {
channel.Pipeline.AddLast("UDPServer", new protocols.UDP());
}));
IChannel boundChannel = await bootstrap.BindAsync(8888);
我也希望能够从此功能之外发送消息。有什么方法可以从这个函数/class 外部向客户端发送消息?我曾尝试写信给 boundChannel
,但它似乎没有发送 .write
或 .writeAsync
函数。
我正在使用从 Java.
移植的 DotNetty 库 (https://github.com/Azure/DotNetty)一个IChannel
有一个WriteAndFlushAsync
方法可以用来写消息,这类似于Netty Java版本中的writeAndFlush
方法。