From e9d48f867c402095692aa532aba8c275cd3aecf7 Mon Sep 17 00:00:00 2001 From: tangmingyou <234767776@qq.com> Date: Tue, 26 Apr 2022 18:05:33 +0800 Subject: [PATCH] entry ReqTokenAuth --- .../net/sopod/soim/client/cmd/CmdEnum.java | 4 +- .../soim/client/config/ClientConfig.java | 4 ++ ...LoginCmdHandler.java => LoginHandler.java} | 13 +++++- .../soim/client/session/SoImSession.java | 15 ++++--- .../net/sopod/soim/data/msg/auth/Auth.java | 43 ++++++++++--------- .../main/resources/protobuf/auth/Auth.proto | 2 +- .../sopod/soim/entry/EntryApplication.java | 2 +- .../handler/auth/ReqTokenAuthHandler.java | 28 ++++++++++++ 8 files changed, 79 insertions(+), 32 deletions(-) rename im-client/src/main/java/net/sopod/soim/client/handler/{LoginCmdHandler.java => LoginHandler.java} (72%) create mode 100644 im-entry/src/main/java/net/sopod/soim/entry/handler/auth/ReqTokenAuthHandler.java diff --git a/im-client/src/main/java/net/sopod/soim/client/cmd/CmdEnum.java b/im-client/src/main/java/net/sopod/soim/client/cmd/CmdEnum.java index bb4983c..e9aff4a 100644 --- a/im-client/src/main/java/net/sopod/soim/client/cmd/CmdEnum.java +++ b/im-client/src/main/java/net/sopod/soim/client/cmd/CmdEnum.java @@ -2,7 +2,7 @@ package net.sopod.soim.client.cmd; import net.sopod.soim.client.cmd.handler.CmdHandler; import net.sopod.soim.client.handler.ExitHandler; -import net.sopod.soim.client.handler.LoginCmdHandler; +import net.sopod.soim.client.handler.LoginHandler; /** * Commands @@ -13,7 +13,7 @@ import net.sopod.soim.client.handler.LoginCmdHandler; public enum CmdEnum { /** 登录 */ - login(LoginCmdHandler.class), + login(LoginHandler.class), /** 发送消息 */ send, diff --git a/im-client/src/main/java/net/sopod/soim/client/config/ClientConfig.java b/im-client/src/main/java/net/sopod/soim/client/config/ClientConfig.java index a9a81eb..f28f8d6 100644 --- a/im-client/src/main/java/net/sopod/soim/client/config/ClientConfig.java +++ b/im-client/src/main/java/net/sopod/soim/client/config/ClientConfig.java @@ -15,4 +15,8 @@ public class ClientConfig { private String loginUrl = "http://localhost:3021/auth/pwdAuth"; + private String host = "127.0.0.1"; + + private Integer port = 8088; + } diff --git a/im-client/src/main/java/net/sopod/soim/client/handler/LoginCmdHandler.java b/im-client/src/main/java/net/sopod/soim/client/handler/LoginHandler.java similarity index 72% rename from im-client/src/main/java/net/sopod/soim/client/handler/LoginCmdHandler.java rename to im-client/src/main/java/net/sopod/soim/client/handler/LoginHandler.java index e65a94b..90ffd83 100644 --- a/im-client/src/main/java/net/sopod/soim/client/handler/LoginCmdHandler.java +++ b/im-client/src/main/java/net/sopod/soim/client/handler/LoginHandler.java @@ -7,7 +7,9 @@ import net.sopod.soim.client.cmd.handler.CmdHandler; import net.sopod.soim.client.config.ClientConfig; import net.sopod.soim.client.logger.Logger; import net.sopod.soim.client.model.dto.LoginResDTO; +import net.sopod.soim.client.session.SoImSession; import net.sopod.soim.client.util.HttpClient; +import net.sopod.soim.data.msg.auth.Auth; import java.util.HashMap; @@ -18,11 +20,14 @@ import java.util.HashMap; * @date 2022-04-25 10:53 */ @Singleton -public class LoginCmdHandler implements CmdHandler { +public class LoginHandler implements CmdHandler { @Inject private ClientConfig clientConfig; + @Inject + private SoImSession soImSession; + @Override public ArgsLogin newArgsInstance() { return new ArgsLogin(); @@ -41,6 +46,12 @@ public class LoginCmdHandler implements CmdHandler { } String authToken = loginRes.getAuthToken(); Logger.info("登录成功: {}", authToken); + + Auth.ReqTokenAuth reqTokenAuth = Auth.ReqTokenAuth.newBuilder() + .setUid(loginRes.getUid()) + .setToken(loginRes.getAuthToken()) + .build(); + soImSession.connect(clientConfig.getHost(), clientConfig.getPort(), reqTokenAuth); } } diff --git a/im-client/src/main/java/net/sopod/soim/client/session/SoImSession.java b/im-client/src/main/java/net/sopod/soim/client/session/SoImSession.java index c66cef0..6c0de45 100644 --- a/im-client/src/main/java/net/sopod/soim/client/session/SoImSession.java +++ b/im-client/src/main/java/net/sopod/soim/client/session/SoImSession.java @@ -32,7 +32,7 @@ public class SoImSession { private AtomicBoolean auth = new AtomicBoolean(false); - public void connect(String host, Integer port, Auth.ReqTokenAuth tokenAuth) throws InterruptedException { + public void connect(String host, Integer port, Auth.ReqTokenAuth tokenAuth) { eventLoopGroup = new NioEventLoopGroup(2); Bootstrap b = new Bootstrap() .group(eventLoopGroup) @@ -45,11 +45,14 @@ public class SoImSession { // .addLast(new ProtoMessageCodec()); } }); - clientChannel = b.connect(host, port).await().channel(); - - // 连接后立即发送认证消息 - // TODO ResHandler - clientChannel.write(tokenAuth); + try { + clientChannel = b.connect(host, port).await().channel(); + // 连接后立即发送认证消息 + // TODO ResHandler + clientChannel.writeAndFlush(tokenAuth); + } catch (InterruptedException e) { + e.printStackTrace(); + } } public void send(MessageLite message) { diff --git a/im-data/src/main/java/net/sopod/soim/data/msg/auth/Auth.java b/im-data/src/main/java/net/sopod/soim/data/msg/auth/Auth.java index aec4e0b..0cfb252 100644 --- a/im-data/src/main/java/net/sopod/soim/data/msg/auth/Auth.java +++ b/im-data/src/main/java/net/sopod/soim/data/msg/auth/Auth.java @@ -1375,10 +1375,10 @@ public final class Auth { com.google.protobuf.MessageOrBuilder { /** - * int32 uid = 1; + * int64 uid = 1; * @return The uid. */ - int getUid(); + long getUid(); /** * string token = 2; @@ -1440,7 +1440,7 @@ public final class Auth { break; case 8: { - uid_ = input.readInt32(); + uid_ = input.readInt64(); break; } case 18: { @@ -1482,13 +1482,13 @@ public final class Auth { } public static final int UID_FIELD_NUMBER = 1; - private int uid_; + private long uid_; /** - * int32 uid = 1; + * int64 uid = 1; * @return The uid. */ @java.lang.Override - public int getUid() { + public long getUid() { return uid_; } @@ -1544,8 +1544,8 @@ public final class Auth { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (uid_ != 0) { - output.writeInt32(1, uid_); + if (uid_ != 0L) { + output.writeInt64(1, uid_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, token_); @@ -1559,9 +1559,9 @@ public final class Auth { if (size != -1) return size; size = 0; - if (uid_ != 0) { + if (uid_ != 0L) { size += com.google.protobuf.CodedOutputStream - .computeInt32Size(1, uid_); + .computeInt64Size(1, uid_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, token_); @@ -1597,7 +1597,8 @@ public final class Auth { int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + UID_FIELD_NUMBER; - hash = (53 * hash) + getUid(); + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getUid()); hash = (37 * hash) + TOKEN_FIELD_NUMBER; hash = (53 * hash) + getToken().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); @@ -1733,7 +1734,7 @@ public final class Auth { @java.lang.Override public Builder clear() { super.clear(); - uid_ = 0; + uid_ = 0L; token_ = ""; @@ -1813,7 +1814,7 @@ public final class Auth { public Builder mergeFrom(net.sopod.soim.data.msg.auth.Auth.ReqTokenAuth other) { if (other == net.sopod.soim.data.msg.auth.Auth.ReqTokenAuth.getDefaultInstance()) return this; - if (other.getUid() != 0) { + if (other.getUid() != 0L) { setUid(other.getUid()); } if (!other.getToken().isEmpty()) { @@ -1849,33 +1850,33 @@ public final class Auth { return this; } - private int uid_ ; + private long uid_ ; /** - * int32 uid = 1; + * int64 uid = 1; * @return The uid. */ @java.lang.Override - public int getUid() { + public long getUid() { return uid_; } /** - * int32 uid = 1; + * int64 uid = 1; * @param value The uid to set. * @return This builder for chaining. */ - public Builder setUid(int value) { + public Builder setUid(long value) { uid_ = value; onChanged(); return this; } /** - * int32 uid = 1; + * int64 uid = 1; * @return This builder for chaining. */ public Builder clearUid() { - uid_ = 0; + uid_ = 0L; onChanged(); return this; } @@ -2680,7 +2681,7 @@ public final class Auth { "th/Auth.proto\022\005proto\"-\n\010ReqLogin\022\017\n\007acco" + "unt\030\001 \001(\t\022\020\n\010password\030\002 \001(\t\")\n\010ResLogin\022" + "\014\n\004code\030\001 \001(\005\022\017\n\007message\030\002 \001(\t\"*\n\014ReqTok" + - "enAuth\022\013\n\003uid\030\001 \001(\005\022\r\n\005token\030\002 \001(\t\"0\n\014Re" + + "enAuth\022\013\n\003uid\030\001 \001(\003\022\r\n\005token\030\002 \001(\t\"0\n\014Re" + "sTokenAuth\022\017\n\007success\030\001 \001(\010\022\017\n\007message\030\002" + " \001(\tB&\n\034net.sopod.soim.data.msg.authB\004Au" + "thP\000b\006proto3" diff --git a/im-data/src/main/resources/protobuf/auth/Auth.proto b/im-data/src/main/resources/protobuf/auth/Auth.proto index 055da724..51adae2 100644 --- a/im-data/src/main/resources/protobuf/auth/Auth.proto +++ b/im-data/src/main/resources/protobuf/auth/Auth.proto @@ -17,7 +17,7 @@ message ResLogin { } message ReqTokenAuth { - int32 uid = 1; + int64 uid = 1; string token = 2; } diff --git a/im-entry/src/main/java/net/sopod/soim/entry/EntryApplication.java b/im-entry/src/main/java/net/sopod/soim/entry/EntryApplication.java index e0bb0ed..d378283 100644 --- a/im-entry/src/main/java/net/sopod/soim/entry/EntryApplication.java +++ b/im-entry/src/main/java/net/sopod/soim/entry/EntryApplication.java @@ -11,7 +11,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; * @date 2022-03-26 00:06 */ @SpringBootApplication -@EnableDubbo //(scanBasePackages = {"net.sopod.soim.entry.service"}) +@EnableDubbo public class EntryApplication { public static void main(String[] args) { diff --git a/im-entry/src/main/java/net/sopod/soim/entry/handler/auth/ReqTokenAuthHandler.java b/im-entry/src/main/java/net/sopod/soim/entry/handler/auth/ReqTokenAuthHandler.java new file mode 100644 index 0000000..c8eb48a --- /dev/null +++ b/im-entry/src/main/java/net/sopod/soim/entry/handler/auth/ReqTokenAuthHandler.java @@ -0,0 +1,28 @@ +package net.sopod.soim.entry.handler.auth; + +import com.google.protobuf.MessageLite; +import net.sopod.soim.core.handler.NetUserMessageHandler; +import net.sopod.soim.core.session.NetUser; +import net.sopod.soim.data.msg.auth.Auth; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +/** + * ReqTokenAuthHandler + * + * @author tmy + * @date 2022-04-26 17:54 + */ +@Service +public class ReqTokenAuthHandler extends NetUserMessageHandler { + + private static final Logger logger = LoggerFactory.getLogger(ReqTokenAuthHandler.class); + + @Override + public MessageLite handle(NetUser netUser, Auth.ReqTokenAuth msg) { + logger.info("ReqTokenAuth: {}, {}", msg.getUid(), msg.getToken()); + return null; + } + +}