如何在Netty中向WebSocket频道写入错误?

时间:2014-08-23 23:59:47

标签: java websocket netty

我有一个Netty 4.0.19应用程序,我正在使用TextWebSocketFrames来发送和接收消息。

这些消息一旦收到,就会通过“onmessage”事件处理程序激活。

我该如何在onerror处理程序上制作错误消息?

例如,如何将以下错误情况作为错误发送回Web套接字客户端而不是消息?

public void channelRead0(final ChannelHandlerContext ctx, final TextWebSocketFrame msg) throws Exception
{
    final String message = msg.retain().text();

    Envelope envelope = null;
    boolean errorFree = true;

    try
    {
        envelope = EnvelopeJsonEncoder.decode(MessageType.PUBLISH, message).build();
    }
    catch (final Exception e)
    {
        errorFree = false;
        final WebSocketFrame outFrame = new CloseWebSocketFrame(1002, "Closing due to error");
        ctx.writeAndFlush(outFrame);
    }

    if (errorFree)
    {
        ctx.fireChannelRead(envelope);
    }
}

1 个答案:

答案 0 :(得分:0)

通常你会编写一个CloseWebSocketFrame并指定正确的密码和原因。