Browse Source

entry ReqTokenAuth

master
tangmingyou 4 years ago
parent
commit
e9d48f867c
  1. 4
      im-client/src/main/java/net/sopod/soim/client/cmd/CmdEnum.java
  2. 4
      im-client/src/main/java/net/sopod/soim/client/config/ClientConfig.java
  3. 13
      im-client/src/main/java/net/sopod/soim/client/handler/LoginHandler.java
  4. 9
      im-client/src/main/java/net/sopod/soim/client/session/SoImSession.java
  5. 43
      im-data/src/main/java/net/sopod/soim/data/msg/auth/Auth.java
  6. 2
      im-data/src/main/resources/protobuf/auth/Auth.proto
  7. 2
      im-entry/src/main/java/net/sopod/soim/entry/EntryApplication.java
  8. 28
      im-entry/src/main/java/net/sopod/soim/entry/handler/auth/ReqTokenAuthHandler.java

4
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,

4
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;
}

13
im-client/src/main/java/net/sopod/soim/client/handler/LoginCmdHandler.java → 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<ArgsLogin> {
public class LoginHandler implements CmdHandler<ArgsLogin> {
@Inject
private ClientConfig clientConfig;
@Inject
private SoImSession soImSession;
@Override
public ArgsLogin newArgsInstance() {
return new ArgsLogin();
@ -41,6 +46,12 @@ public class LoginCmdHandler implements CmdHandler<ArgsLogin> {
}
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);
}
}

9
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());
}
});
try {
clientChannel = b.connect(host, port).await().channel();
// 连接后立即发送认证消息
// TODO ResHandler
clientChannel.write(tokenAuth);
clientChannel.writeAndFlush(tokenAuth);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public void send(MessageLite message) {

43
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 {
/**
* <code>int32 uid = 1;</code>
* <code>int64 uid = 1;</code>
* @return The uid.
*/
int getUid();
long getUid();
/**
* <code>string token = 2;</code>
@ -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_;
/**
* <code>int32 uid = 1;</code>
* <code>int64 uid = 1;</code>
* @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_ ;
/**
* <code>int32 uid = 1;</code>
* <code>int64 uid = 1;</code>
* @return The uid.
*/
@java.lang.Override
public int getUid() {
public long getUid() {
return uid_;
}
/**
* <code>int32 uid = 1;</code>
* <code>int64 uid = 1;</code>
* @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;
}
/**
* <code>int32 uid = 1;</code>
* <code>int64 uid = 1;</code>
* @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"

2
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;
}

2
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) {

28
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<Auth.ReqTokenAuth> {
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;
}
}
Loading…
Cancel
Save