直接向用户发送消息

时间:2018-04-08 10:41:02

标签: c# netty

我希望通过他们的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);

我希望能够从此功能外部发送消息。有什么方法可以从这个函数/类外部向客户端发送消息?我尝试过写boundChannel,但它似乎没有挥动.write.writeAsync函数。

我正在使用从Java移植的DotNetty库(https://github.com/Azure/DotNetty)。

1 个答案:

答案 0 :(得分:3)

Windows 2016有一个WriteAndFlushAsync方法可用于编写消息,这与Java版本的Netty中的IChannel方法类似。