Search in sources :

Example 1 with XHRPostMessage

use of com.corundumstudio.socketio.messages.XHRPostMessage in project netty-socketio by mrniko.

the class PollingTransport method onPost.

private void onPost(UUID sessionId, ChannelHandlerContext ctx, String origin, ByteBuf content) throws IOException {
    ClientHead client = clientsBox.get(sessionId);
    if (client == null) {
        log.error("{} is not registered. Closing connection", sessionId);
        sendError(ctx);
        return;
    }
    // release POST response before message processing
    ctx.channel().writeAndFlush(new XHRPostMessage(origin, sessionId));
    Boolean b64 = ctx.channel().attr(EncoderHandler.B64).get();
    if (b64 != null && b64) {
        Integer jsonIndex = ctx.channel().attr(EncoderHandler.JSONP_INDEX).get();
        content = decoder.preprocessJson(jsonIndex, content);
    }
    ctx.pipeline().fireChannelRead(new PacketsMessage(client, content, Transport.POLLING));
}
Also used : XHRPostMessage(com.corundumstudio.socketio.messages.XHRPostMessage) PacketsMessage(com.corundumstudio.socketio.messages.PacketsMessage) ClientHead(com.corundumstudio.socketio.handler.ClientHead)

Example 2 with XHRPostMessage

use of com.corundumstudio.socketio.messages.XHRPostMessage in project netty-socketio by mrniko.

the class PollingTransport method handleMessage.

private void handleMessage(FullHttpRequest req, UUID sessionId, QueryStringDecoder queryDecoder, ChannelHandlerContext ctx) throws IOException {
    String origin = req.headers().get(HttpHeaderNames.ORIGIN);
    if (queryDecoder.parameters().containsKey("disconnect")) {
        ClientHead client = clientsBox.get(sessionId);
        client.onChannelDisconnect();
        ctx.channel().writeAndFlush(new XHRPostMessage(origin, sessionId));
    } else if (HttpMethod.POST.equals(req.method())) {
        onPost(sessionId, ctx, origin, req.content());
    } else if (HttpMethod.GET.equals(req.method())) {
        onGet(sessionId, ctx, origin);
    } else if (HttpMethod.OPTIONS.equals(req.method())) {
        onOptions(sessionId, ctx, origin);
    } else {
        log.error("Wrong {} method invocation for {}", req.method(), sessionId);
        sendError(ctx);
    }
}
Also used : XHRPostMessage(com.corundumstudio.socketio.messages.XHRPostMessage) ClientHead(com.corundumstudio.socketio.handler.ClientHead)

Aggregations

ClientHead (com.corundumstudio.socketio.handler.ClientHead)2 XHRPostMessage (com.corundumstudio.socketio.messages.XHRPostMessage)2 PacketsMessage (com.corundumstudio.socketio.messages.PacketsMessage)1