mirror of
https://github.com/GravitLauncher/Launcher
synced 2025-03-28 20:18:21 +03:00
Фикс отправления ответов
This commit is contained in:
parent
7f952af1b9
commit
a1bb6d6e2f
3 changed files with 13 additions and 7 deletions
|
@ -8,6 +8,7 @@
|
||||||
import io.netty.channel.SimpleChannelInboundHandler;
|
import io.netty.channel.SimpleChannelInboundHandler;
|
||||||
import io.netty.channel.group.ChannelGroup;
|
import io.netty.channel.group.ChannelGroup;
|
||||||
import io.netty.channel.group.DefaultChannelGroup;
|
import io.netty.channel.group.DefaultChannelGroup;
|
||||||
|
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
|
||||||
import io.netty.handler.codec.http.websocketx.WebSocketFrame;
|
import io.netty.handler.codec.http.websocketx.WebSocketFrame;
|
||||||
import io.netty.util.concurrent.GlobalEventExecutor;
|
import io.netty.util.concurrent.GlobalEventExecutor;
|
||||||
import ru.gravit.launchserver.LaunchServer;
|
import ru.gravit.launchserver.LaunchServer;
|
||||||
|
@ -38,10 +39,13 @@ public void channelActive(ChannelHandlerContext ctx) {
|
||||||
@Override
|
@Override
|
||||||
protected void channelRead0(ChannelHandlerContext ctx, WebSocketFrame frame) throws Exception {
|
protected void channelRead0(ChannelHandlerContext ctx, WebSocketFrame frame) throws Exception {
|
||||||
// ping and pong frames already handled
|
// ping and pong frames already handled
|
||||||
ByteBuf buf = frame.content();
|
if (frame instanceof TextWebSocketFrame) {
|
||||||
ByteBufInputStream input = new ByteBufInputStream(buf);
|
String request = ((TextWebSocketFrame) frame).text();
|
||||||
Reader reader = new InputStreamReader(input, "UTF-8");
|
JsonResponse response = gson.fromJson(request, JsonResponse.class);
|
||||||
JsonResponse response = gson.fromJson(reader,JsonResponse.class);
|
response.execute(ctx, frame);
|
||||||
response.execute(ctx,frame);
|
} else {
|
||||||
|
String message = "unsupported frame type: " + frame.getClass().getName();
|
||||||
|
throw new UnsupportedOperationException(message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package ru.gravit.launchserver.socket.websocket.json;
|
package ru.gravit.launchserver.socket.websocket.json;
|
||||||
|
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
|
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
|
||||||
import io.netty.handler.codec.http.websocketx.WebSocketFrame;
|
import io.netty.handler.codec.http.websocketx.WebSocketFrame;
|
||||||
import ru.gravit.launchserver.socket.websocket.WebSocketFrameHandler;
|
import ru.gravit.launchserver.socket.websocket.WebSocketFrameHandler;
|
||||||
import ru.gravit.utils.helper.LogHelper;
|
import ru.gravit.utils.helper.LogHelper;
|
||||||
|
@ -20,7 +21,7 @@ public String getType() {
|
||||||
@Override
|
@Override
|
||||||
public void execute(ChannelHandlerContext ctx, WebSocketFrame frame) {
|
public void execute(ChannelHandlerContext ctx, WebSocketFrame frame) {
|
||||||
LogHelper.info("Echo: %s",echo);
|
LogHelper.info("Echo: %s",echo);
|
||||||
ctx.channel().writeAndFlush(WebSocketFrameHandler.gson.toJson(new Result(echo)));
|
ctx.channel().writeAndFlush(new TextWebSocketFrame(WebSocketFrameHandler.gson.toJson(new Result(echo))));
|
||||||
}
|
}
|
||||||
public class Result
|
public class Result
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package ru.gravit.launchserver.socket.websocket.json.auth;
|
package ru.gravit.launchserver.socket.websocket.json.auth;
|
||||||
|
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
|
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
|
||||||
import io.netty.handler.codec.http.websocketx.WebSocketFrame;
|
import io.netty.handler.codec.http.websocketx.WebSocketFrame;
|
||||||
import ru.gravit.launcher.profiles.ClientProfile;
|
import ru.gravit.launcher.profiles.ClientProfile;
|
||||||
import ru.gravit.launcher.serialize.signed.SignedObjectHolder;
|
import ru.gravit.launcher.serialize.signed.SignedObjectHolder;
|
||||||
|
@ -67,7 +68,7 @@ public void execute(ChannelHandlerContext ctx, WebSocketFrame frame) throws Exce
|
||||||
server.config.hwidHandler.check(hwid, result.username);
|
server.config.hwidHandler.check(hwid, result.username);
|
||||||
} catch (AuthException | HWIDException e)
|
} catch (AuthException | HWIDException e)
|
||||||
{
|
{
|
||||||
ctx.channel().writeAndFlush(WebSocketFrameHandler.gson.toJson(new ErrorResult(e.getMessage())));
|
ctx.channel().writeAndFlush(new TextWebSocketFrame(WebSocketFrameHandler.gson.toJson(new ErrorResult(e.getMessage()))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public class ErrorResult
|
public class ErrorResult
|
||||||
|
|
Loading…
Reference in a new issue