Browse Source

im client

master
tangmingyou 4 years ago
parent
commit
25a862d5d0
  1. 6
      im-client/pom.xml
  2. 13
      im-client/src/main/java/net/sopod/soim/client/ClientMain.java
  3. 9
      im-client/src/main/java/net/sopod/soim/client/cmd/ArgsLogin.java
  4. 50
      im-client/src/main/java/net/sopod/soim/client/cmd/CmdDispatcher.java
  5. 28
      im-client/src/main/java/net/sopod/soim/client/cmd/CmdEnum.java
  6. 8
      im-client/src/main/java/net/sopod/soim/client/cmd/CmdStarter.java
  7. 2
      im-client/src/main/java/net/sopod/soim/client/cmd/handler/CmdHandler.java
  8. 4
      im-client/src/main/java/net/sopod/soim/client/cmd/handler/NonArgsHandler.java
  9. 18
      im-client/src/main/java/net/sopod/soim/client/config/ClientConfig.java
  10. 9
      im-client/src/main/java/net/sopod/soim/client/config/GuiceIoc.java
  11. 1
      im-client/src/main/java/net/sopod/soim/client/handler/ExitHandler.java
  12. 23
      im-client/src/main/java/net/sopod/soim/client/handler/LoginCmdHandler.java
  13. 10
      im-client/src/main/java/net/sopod/soim/client/logger/Logger.java
  14. 24
      im-client/src/main/java/net/sopod/soim/client/model/dto/LoginResDTO.java
  15. 81
      im-client/src/main/java/net/sopod/soim/client/session/SoImSession.java
  16. 46
      im-client/src/main/java/net/sopod/soim/client/util/HttpClient.java
  17. 16
      im-common/src/main/java/net/sopod/soim/common/util/Jackson.java
  18. 6
      im-core/src/main/java/net/sopod/soim/core/registry/ProtoMessageHandlerRegistry.java
  19. 1306
      im-data/src/main/java/net/sopod/soim/data/msg/auth/Auth.java
  20. 14
      im-data/src/main/resources/protoSerialNoTable.txt
  21. 10
      im-data/src/main/resources/protobuf/auth/Auth.proto
  22. 14
      pom.xml

6
im-client/pom.xml

@ -37,6 +37,12 @@
<groupId>com.beust</groupId> <groupId>com.beust</groupId>
<artifactId>jcommander</artifactId> <artifactId>jcommander</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.konghq</groupId>
<artifactId>unirest-java</artifactId>
<version>3.13.6</version>
</dependency>
</dependencies> </dependencies>
</project> </project>

13
im-client/src/main/java/net/sopod/soim/client/ClientMain.java

@ -3,10 +3,8 @@ package net.sopod.soim.client;
import com.google.inject.Guice; import com.google.inject.Guice;
import com.google.inject.Injector; import com.google.inject.Injector;
import com.google.inject.Stage; import com.google.inject.Stage;
import net.sopod.soim.client.cmd.CmdDispatcher;
import net.sopod.soim.client.cmd.CmdStarter; import net.sopod.soim.client.cmd.CmdStarter;
import net.sopod.soim.client.config.GuiceIoc; import net.sopod.soim.client.config.GuiceIoc;
import net.sopod.soim.client.net.ImNetClient;
/** /**
* Main * Main
@ -19,15 +17,16 @@ import net.sopod.soim.client.net.ImNetClient;
*/ */
public class ClientMain { public class ClientMain {
public static void main(String[] args) throws InterruptedException { public static void main(String[] args) {
// ImNetClient client = new ImNetClient(); // ImNetClient client = new ImNetClient();
// client.connect("127.0.0.1", 8088); // client.connect("127.0.0.1", 8088);
// 创建 ioc 容器
GuiceIoc guiceIoc = new GuiceIoc(ClientMain.class); GuiceIoc guiceIoc = new GuiceIoc(ClientMain.class);
Injector injector = Guice.createInjector(Stage.PRODUCTION, guiceIoc); Injector injector = Guice.createInjector(Stage.PRODUCTION, guiceIoc);
// dispatcher
CmdDispatcher cmdDispatcher = new CmdDispatcher(injector); // 启动 cmd scanner
// starter CmdStarter cmdStarter = injector.getInstance(CmdStarter.class);
CmdStarter cmdStarter = new CmdStarter(cmdDispatcher);
cmdStarter.start(); cmdStarter.start();
} }

9
im-client/src/main/java/net/sopod/soim/client/cmd/ArgsLogin.java

@ -3,6 +3,8 @@ package net.sopod.soim.client.cmd;
import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameter;
import lombok.Data; import lombok.Data;
import java.util.List;
/** /**
* ArgsLogin * ArgsLogin
* *
@ -12,10 +14,13 @@ import lombok.Data;
@Data @Data
public class ArgsLogin { public class ArgsLogin {
@Parameter(names = {"-u", "-account"}, description = "账号") @Parameter
private List<String> parameters;
@Parameter(names = {"-u", "-account"}, required = true, description = "账号")
private String account; private String account;
@Parameter(names = {"-p", "-password"}, description = "密码", password = true) @Parameter(names = {"-p", "-password"}, required = true, description = "密码", password = true)
private String password; private String password;
} }

50
im-client/src/main/java/net/sopod/soim/client/cmd/CmdDispatcher.java

@ -1,7 +1,11 @@
package net.sopod.soim.client.cmd; package net.sopod.soim.client.cmd;
import com.beust.jcommander.JCommander; import com.beust.jcommander.JCommander;
import com.beust.jcommander.ParameterException;
import com.google.inject.Inject;
import com.google.inject.Injector; import com.google.inject.Injector;
import com.google.inject.Singleton;
import net.sopod.soim.client.cmd.handler.CmdHandler;
import net.sopod.soim.client.logger.Logger; import net.sopod.soim.client.logger.Logger;
/** /**
@ -17,36 +21,48 @@ import net.sopod.soim.client.logger.Logger;
* @author tmy * @author tmy
* @date 2022-04-25 10:28 * @date 2022-04-25 10:28
*/ */
@Singleton
public class CmdDispatcher { public class CmdDispatcher {
private final Injector injector; private final Injector injector;
@Inject
public CmdDispatcher(Injector injector) { public CmdDispatcher(Injector injector) {
this.injector = injector; this.injector = injector;
} }
@SuppressWarnings("unchecked")
public void dispatchCmd(String cmdStr) { public void dispatchCmd(String cmdStr) {
Logger.info("dispatch cmd: {}", cmdStr); String[] cmdArgs = cmdStr.trim().split("[ \t]+");
int idx = cmdStr.indexOf(" "); String cmd = cmdArgs[0];
String cmd = idx == -1 ? cmdStr : cmdStr.substring(0, idx); String[] args = new String[cmdArgs.length - 1];
String argsStr = idx == -1 ? "" : cmdStr.substring(idx + 1); if (args.length > 0) {
System.arraycopy(cmdArgs, 1, args, 0, args.length);
} }
public static void main(String[] args) { CmdEnum cmdEnum = CmdEnum.getValue(cmd);
String cmdStr = "auth -u prometheus -p 123456"; if (cmdEnum == null) {
int idx = cmdStr.indexOf(" "); Logger.error("未知指令: {}", cmd);
String cmd = idx == -1 ? cmdStr : cmdStr.substring(0, idx); return;
String argsStr = idx == -1 ? "" : cmdStr.substring(idx + 1); }
Class<? extends CmdHandler<?>> handlerClass = cmdEnum.getHandlerClass();
CmdHandler<?> cmdHandler = injector.getInstance(handlerClass);
ArgsLogin argsLogin = new ArgsLogin(); Object argsInstance = cmdHandler.newArgsInstance();
String[] argv = {"-u", "zeus", "-p", "123456"}; try {
JCommander.newBuilder() JCommander.newBuilder()
.addObject(argsLogin) .addObject(argsInstance)
.build() .build()
.parse(argv); .parse(args);
System.out.println(argsLogin); } catch (ParameterException e) {
String message = e.getMessage();
this.parseParameterExceptionMessage(message);
return;
}
((CmdHandler<Object>)cmdHandler).handleArgs(argsInstance);
}
private void parseParameterExceptionMessage(String message) {
Logger.error(message);
} }
} }

28
im-client/src/main/java/net/sopod/soim/client/cmd/CmdEnum.java

@ -1,5 +1,9 @@
package net.sopod.soim.client.cmd; 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;
/** /**
* Commands * Commands
* *
@ -9,7 +13,7 @@ package net.sopod.soim.client.cmd;
public enum CmdEnum { public enum CmdEnum {
/** 登录 */ /** 登录 */
login, login(LoginCmdHandler.class),
/** 发送消息 */ /** 发送消息 */
send, send,
@ -20,12 +24,32 @@ public enum CmdEnum {
/** 用户分组列表 */ /** 用户分组列表 */
groups, groups,
help,
/** 退出 */ /** 退出 */
exit; exit(ExitHandler.class);
private Class<? extends CmdHandler<?>> handlerClass;
CmdEnum() { CmdEnum() {
} }
CmdEnum(Class<? extends CmdHandler<?>> handlerClass) {
this.handlerClass = handlerClass;
}
public Class<?extends CmdHandler<?>> getHandlerClass() {
return this.handlerClass;
}
public static CmdEnum getValue(String cmdName) {
for (CmdEnum value : values()) {
if (value.name().equals(cmdName)) {
return value;
}
}
return null;
}
} }

8
im-client/src/main/java/net/sopod/soim/client/cmd/CmdStarter.java

@ -1,6 +1,8 @@
package net.sopod.soim.client.cmd; package net.sopod.soim.client.cmd;
import com.google.inject.Inject;
import com.google.inject.Injector; import com.google.inject.Injector;
import com.google.inject.Singleton;
import net.sopod.soim.client.logger.Logger; import net.sopod.soim.client.logger.Logger;
import java.util.Scanner; import java.util.Scanner;
@ -11,21 +13,23 @@ import java.util.Scanner;
* @author tmy * @author tmy
* @date 2022-04-25 10:28 * @date 2022-04-25 10:28
*/ */
@Singleton
public class CmdStarter { public class CmdStarter {
private final CmdDispatcher cmdDispatcher; private final CmdDispatcher cmdDispatcher;
@Inject
public CmdStarter(CmdDispatcher cmdDispatcher) { public CmdStarter(CmdDispatcher cmdDispatcher) {
this.cmdDispatcher = cmdDispatcher; this.cmdDispatcher = cmdDispatcher;
} }
public void start() { public void start() {
Scanner scanner = new Scanner(System.in); Scanner scanner = new Scanner(System.in);
Logger.pre("[client]: "); Logger.pre("【client】: ");
while(scanner.hasNextLine()) { while(scanner.hasNextLine()) {
String cmd = scanner.nextLine(); String cmd = scanner.nextLine();
cmdDispatcher.dispatchCmd(cmd); cmdDispatcher.dispatchCmd(cmd);
Logger.pre("[client]: "); Logger.pre("【client】: ");
} }
scanner.close(); scanner.close();

2
im-client/src/main/java/net/sopod/soim/client/handler/CmdHandler.java → im-client/src/main/java/net/sopod/soim/client/cmd/handler/CmdHandler.java

@ -1,4 +1,4 @@
package net.sopod.soim.client.handler; package net.sopod.soim.client.cmd.handler;
/** /**
* CmdHandler * CmdHandler

4
im-client/src/main/java/net/sopod/soim/client/handler/NonArgsHandler.java → im-client/src/main/java/net/sopod/soim/client/cmd/handler/NonArgsHandler.java

@ -1,4 +1,4 @@
package net.sopod.soim.client.handler; package net.sopod.soim.client.cmd.handler;
/** /**
* NoArgsHandler * NoArgsHandler
@ -18,6 +18,6 @@ public abstract class NonArgsHandler implements CmdHandler<Object> {
this.handle(); this.handle();
} }
abstract void handle(); public abstract void handle();
} }

18
im-client/src/main/java/net/sopod/soim/client/config/ClientConfig.java

@ -0,0 +1,18 @@
package net.sopod.soim.client.config;
import com.google.inject.Singleton;
import lombok.Data;
/**
* ClientConfig
*
* @author tmy
* @date 2022-04-25 22:33
*/
@Singleton
@Data
public class ClientConfig {
private String loginUrl = "http://localhost:3021/auth/pwdAuth";
}

9
im-client/src/main/java/net/sopod/soim/client/config/GuiceIoc.java

@ -19,21 +19,28 @@ public class GuiceIoc extends AbstractModule {
private Set<Class<?>> beanTypes = Collections.emptySet(); private Set<Class<?>> beanTypes = Collections.emptySet();
/**
* @param rootClass 从该类所在包开始扫描
*/
public GuiceIoc(Class<?> rootClass) { public GuiceIoc(Class<?> rootClass) {
this.rootPackage = rootClass.getPackage().getName(); this.rootPackage = rootClass.getPackage().getName();
this.scanRootPackage(); this.scanRootPackage();
} }
/**
* guice 注册 bean
*/
@Override @Override
protected void configure() { protected void configure() {
for (Class<?> beanType : this.beanTypes) { for (Class<?> beanType : this.beanTypes) {
bind(beanType); bind(beanType);
} }
// 注册后释放内存
this.beanTypes = Collections.emptySet(); this.beanTypes = Collections.emptySet();
} }
/** /**
* 扫描需要注入的类 * 扫描需要注入的类 {@link Singleton} 注解的类
*/ */
private void scanRootPackage() { private void scanRootPackage() {
Reflections reflect = new Reflections(rootPackage); Reflections reflect = new Reflections(rootPackage);

1
im-client/src/main/java/net/sopod/soim/client/handler/ExitHandler.java

@ -1,6 +1,7 @@
package net.sopod.soim.client.handler; package net.sopod.soim.client.handler;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import net.sopod.soim.client.cmd.handler.NonArgsHandler;
/** /**
* ExitHandler * ExitHandler

23
im-client/src/main/java/net/sopod/soim/client/handler/LoginCmdHandler.java

@ -1,7 +1,15 @@
package net.sopod.soim.client.handler; package net.sopod.soim.client.handler;
import com.google.inject.Inject;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import net.sopod.soim.client.cmd.ArgsLogin; import net.sopod.soim.client.cmd.ArgsLogin;
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.util.HttpClient;
import java.util.HashMap;
/** /**
* LoginCmdHandler * LoginCmdHandler
@ -12,6 +20,9 @@ import net.sopod.soim.client.cmd.ArgsLogin;
@Singleton @Singleton
public class LoginCmdHandler implements CmdHandler<ArgsLogin> { public class LoginCmdHandler implements CmdHandler<ArgsLogin> {
@Inject
private ClientConfig clientConfig;
@Override @Override
public ArgsLogin newArgsInstance() { public ArgsLogin newArgsInstance() {
return new ArgsLogin(); return new ArgsLogin();
@ -19,7 +30,17 @@ public class LoginCmdHandler implements CmdHandler<ArgsLogin> {
@Override @Override
public void handleArgs(ArgsLogin args) { public void handleArgs(ArgsLogin args) {
Logger.info("login args: {}", args);
HashMap<String, String> params = new HashMap<>();
params.put("account", args.getAccount());
params.put("password", args.getPassword());
LoginResDTO loginRes = HttpClient.restPost(clientConfig.getLoginUrl(), params, LoginResDTO.class);
if (!Boolean.TRUE.equals(loginRes.getSuccess())) {
Logger.error("登录失败: {}", loginRes.getMessage());
return;
}
String authToken = loginRes.getAuthToken();
Logger.info("登录成功: {}", authToken);
} }
} }

10
im-client/src/main/java/net/sopod/soim/client/logger/Logger.java

@ -9,11 +9,19 @@ package net.sopod.soim.client.logger;
public class Logger { public class Logger {
public static void info(String msg, Object...args) { public static void info(String msg, Object...args) {
log("[info] " + msg, args);
}
public static void error(String msg, Object...args) {
log("[error] " + msg, args);
}
public static void log(String msg, Object...args) {
msg = msg.replaceAll("\\{}", "%s"); msg = msg.replaceAll("\\{}", "%s");
for (int i = 0; i < args.length; i++) { for (int i = 0; i < args.length; i++) {
args[i] = String.valueOf(args[i]); args[i] = String.valueOf(args[i]);
} }
System.out.println("[info]: " + String.format(msg, args)); System.out.println(String.format(msg, args));
} }
public static void pre(String pre) { public static void pre(String pre) {

24
im-client/src/main/java/net/sopod/soim/client/model/dto/LoginResDTO.java

@ -0,0 +1,24 @@
package net.sopod.soim.client.model.dto;
import lombok.Data;
/**
* LoginResDTO
*
* @author tmy
* @date 2022-04-25 22:36
*/
@Data
public class LoginResDTO {
private Boolean success;
private Long uid;
private String authToken;
private Long expireMs;
private String message;
}

81
im-client/src/main/java/net/sopod/soim/client/session/SoImSession.java

@ -0,0 +1,81 @@
package net.sopod.soim.client.session;
import com.google.inject.Singleton;
import com.google.protobuf.MessageLite;
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.Channel;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioSocketChannel;
import net.sopod.soim.client.logger.Logger;
import net.sopod.soim.core.net.ImMessageCodec;
import net.sopod.soim.data.msg.auth.Auth;
import org.slf4j.LoggerFactory;
import java.util.concurrent.atomic.AtomicBoolean;
/**
* SoImSession
*
* @author tmy
* @date 2022-04-25 22:49
*/
@Singleton
public class SoImSession {
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(SoImSession.class);
private NioEventLoopGroup eventLoopGroup;
private Channel clientChannel;
private AtomicBoolean auth = new AtomicBoolean(false);
public void connect(String host, Integer port, Auth.ReqTokenAuth tokenAuth) throws InterruptedException {
eventLoopGroup = new NioEventLoopGroup(2);
Bootstrap b = new Bootstrap()
.group(eventLoopGroup)
.channel(NioSocketChannel.class)
.handler(new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel ch) throws Exception {
ch.pipeline()
.addLast(new ImMessageCodec());
// .addLast(new ProtoMessageCodec());
}
});
clientChannel = b.connect(host, port).await().channel();
// 连接后立即发送认证消息
// TODO ResHandler
clientChannel.write(tokenAuth);
}
public void send(MessageLite message) {
if (!auth.get()) {
Logger.error("请登录后发送消息");
return;
}
if (clientChannel == null
|| !clientChannel.isActive()) {
Logger.error("连接未打开");
return;
}
clientChannel.write(message);
}
public void close() {
if (clientChannel != null) {
try {
clientChannel.close().await();
} catch (InterruptedException e) {
logger.error("channel close error: ", e);
}
}
if (eventLoopGroup != null) {
eventLoopGroup.shutdownGracefully();
}
}
}

46
im-client/src/main/java/net/sopod/soim/client/util/HttpClient.java

@ -0,0 +1,46 @@
package net.sopod.soim.client.util;
import com.google.common.net.MediaType;
import kong.unirest.HttpResponse;
import kong.unirest.JsonNode;
import kong.unirest.Unirest;
import kong.unirest.json.JSONElement;
import net.sopod.soim.common.util.Jackson;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
/**
* HttpClient
*
* @author tmy
* @date 2022-04-25 22:06
*/
public class HttpClient {
@SuppressWarnings("unchecked")
public static <T> T restPost(String url, Map<?, ?> params, Class<T> resType) {
HttpResponse<String> res = Unirest.post(url)
.body(Jackson.json().serialize(params))
.contentType("application/json")
.charset(StandardCharsets.UTF_8)
.asString();
if (String.class.equals(resType)) {
return (T) res.getBody();
}
return Jackson.json().deserialize(res.getBody(), resType);
}
public static void main(String[] args) throws IOException {
HashMap<String, String> params = new HashMap<>();
params.put("account", "prometheus");
params.put("password", "123456");
String res = restPost("http://localhost:3021/auth/pwdAuth", params, String.class);
System.out.println(res);
}
}

16
im-common/src/main/java/net/sopod/soim/common/util/Jackson.java

@ -1,13 +1,12 @@
package net.sopod.soim.common.util; package net.sopod.soim.common.util;
import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.json.JsonReadFeature; import com.fasterxml.jackson.core.json.JsonReadFeature;
import com.fasterxml.jackson.core.json.PackageVersion; import com.fasterxml.jackson.core.json.PackageVersion;
import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
@ -18,6 +17,7 @@ import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -162,6 +162,16 @@ public class Jackson {
public static Jackson xml() { public static Jackson xml() {
getFactoryInstance("com.fasterxml.jackson.dataformat.xml.XmlMapper", getFactoryInstance("com.fasterxml.jackson.dataformat.xml.XmlMapper",
() -> XML_INSTANCE == null, () -> XML_INSTANCE == null,
mapper -> {
// 设置返回 null 转为 空字符串""
mapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() {
@Override
public void serialize(Object paramT, JsonGenerator paramJsonGenerator,
SerializerProvider paramSerializerProvider) throws IOException {
paramJsonGenerator.writeString("");
}
});
},
jackson -> XML_INSTANCE = jackson); jackson -> XML_INSTANCE = jackson);
return XML_INSTANCE; return XML_INSTANCE;
} }

6
im-core/src/main/java/net/sopod/soim/core/registry/ProtoMessageHandlerRegistry.java

@ -9,10 +9,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.Collection; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
/** /**
@ -63,6 +60,7 @@ public class ProtoMessageHandlerRegistry {
} }
@Nullable @Nullable
@SuppressWarnings("unchecked")
public static <T> MessageHandler<T> getTypeHandler(Class<? extends MessageLite> type) { public static <T> MessageHandler<T> getTypeHandler(Class<? extends MessageLite> type) {
if (CONTEXT_AWARE_AWAIT.getCount() > 0) { if (CONTEXT_AWARE_AWAIT.getCount() > 0) {
try { try {

1306
im-data/src/main/java/net/sopod/soim/data/msg/auth/Auth.java

File diff suppressed because it is too large Load Diff

14
im-data/src/main/resources/protoSerialNoTable.txt

@ -1,6 +1,8 @@
net.sopod.soim.data.msg.net.HeartBeat$Ping=10000 net.sopod.soim.data.msg.auth.Auth$ReqTokenAuth=10000
net.sopod.soim.data.msg.net.HeartBeat$Pong=10001 net.sopod.soim.data.msg.hello.HelloPB$World=10001
net.sopod.soim.data.msg.auth.Auth$ResLogin=10002 net.sopod.soim.data.msg.net.HeartBeat$Ping=10002
net.sopod.soim.data.msg.hello.HelloPB$Hello=10003 net.sopod.soim.data.msg.net.HeartBeat$Pong=10003
net.sopod.soim.data.msg.auth.Auth$ReqLogin=10004 net.sopod.soim.data.msg.hello.HelloPB$Hello=10004
net.sopod.soim.data.msg.hello.HelloPB$World=10005 net.sopod.soim.data.msg.auth.Auth$ReqLogin=10005
net.sopod.soim.data.msg.auth.Auth$ResTokenAuth=10006
net.sopod.soim.data.msg.auth.Auth$ResLogin=10007

10
im-data/src/main/resources/protobuf/auth/Auth.proto

@ -15,3 +15,13 @@ message ResLogin {
int32 code = 1; int32 code = 1;
string message = 2; string message = 2;
} }
message ReqTokenAuth {
int32 uid = 1;
string token = 2;
}
message ResTokenAuth {
bool success = 1;
string message = 2;
}

14
pom.xml

@ -301,6 +301,20 @@
</execution> </execution>
</executions> </executions>
</plugin> --> </plugin> -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
<!-- <testExcludes>-->
<!-- <testExclude>/src/test/**</testExclude>-->
<!-- </testExcludes>-->
<encoding>utf-8</encoding>
</configuration>
</plugin>
</plugins> </plugins>
</build> </build>

Loading…
Cancel
Save