Quellcode durchsuchen

发送消息绑定用户信息

master
徐勤民 vor 1 Jahr
Ursprung
Commit
7254ff441a
13 geänderte Dateien mit 130 neuen und 30 gelöschten Zeilen
  1. +5
    -5
      SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/bean/UserInfo.java
  2. +9
    -0
      SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/cfg/Constant.java
  3. +29
    -0
      SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/enums/OsType.java
  4. +3
    -1
      SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/http/HeaderInterceptor.java
  5. +16
    -3
      SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/bean/PacketMessage.java
  6. +3
    -3
      SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/manager/ImManager.java
  7. +1
    -0
      SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/manager/UserManager.java
  8. +17
    -0
      SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/msg/SZYXMessage.java
  9. +7
    -0
      SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/msg/message/SZYXTextMessage.java
  10. +11
    -11
      SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/opt/ImConnectOptions.java
  11. +4
    -3
      SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/manager/SZYXImManager.java
  12. +1
    -1
      app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/ChatActivity.java
  13. +24
    -3
      app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/login/LoginActivity.java

+ 5
- 5
SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/bean/UserInfo.java Datei anzeigen

@@ -2,7 +2,7 @@ package cn.org.bjca.trust.android.lib.im.bean;

public class UserInfo {
private String userId;
private String userName;
private String token;
private String password;
private String appId;
private String osType;
@@ -18,12 +18,12 @@ public class UserInfo {
this.userId = userId;
}

public String getUserName() {
return userName;
public String getToken() {
return token;
}

public void setUserName(String userName) {
this.userName = userName;
public void setToken(String token) {
this.token = token;
}

public String getPassword() {


+ 9
- 0
SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/cfg/Constant.java Datei anzeigen

@@ -7,6 +7,7 @@ public class Constant {

private static String sdkAppID;
private static String userId;
private static String token;

public static void setSdkAppID(String sdkAppID) {
Constant.sdkAppID = sdkAppID;
@@ -23,4 +24,12 @@ public class Constant {
public static void setUserId(String userId) {
Constant.userId = userId;
}

public static String getToken() {
return token;
}

public static void setToken(String token) {
Constant.token = token;
}
}

+ 29
- 0
SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/enums/OsType.java Datei anzeigen

@@ -0,0 +1,29 @@
package cn.org.bjca.trust.android.lib.im.enums;

public enum OsType {
UNKNOWN(-1),
ANDROID(1),
WEB(2),
IOS(3),
MAC(4),
PC(5);

private int type = -1;

OsType(final int type) {
this.type = type;
}

public int type() {
return this.type;
}

public static OsType getType(final int type) {
for (final OsType value : OsType.values()) {
if (value.type == type) {
return value;
}
}
return UNKNOWN;
}
}

+ 3
- 1
SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/http/HeaderInterceptor.java Datei anzeigen

@@ -6,6 +6,7 @@ import java.io.IOException;

import cn.org.bjca.trust.android.lib.im.BuildConfig;
import cn.org.bjca.trust.android.lib.im.cfg.Constant;
import cn.org.bjca.trust.android.lib.im.enums.OsType;
import okhttp3.Interceptor;
import okhttp3.Response;

@@ -17,8 +18,9 @@ public class HeaderInterceptor implements Interceptor {
return chain.proceed(chain.request().newBuilder()
.header("AppID", Constant.getSdkAppID())
.header("UserId", Constant.getUserId())
.header("token", null == Constant.getToken() ? "" : Constant.getToken())
.addHeader("Version", BuildConfig.versionName)
.addHeader("OsType", "1")
.addHeader("OsType", String.valueOf(OsType.ANDROID.type()))
.build());
}
}

+ 16
- 3
SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/bean/PacketMessage.java Datei anzeigen

@@ -11,12 +11,17 @@ public abstract class PacketMessage {
*/
private String msgId = UUID.randomUUID().toString();
private PacketType packetType;
private long timestamp = System.currentTimeMillis();
private String appId = Constant.getSdkAppID();
private String userName = Constant.getUserId();
private long timestamp;
private String appId;
private String userName;
private String token;

public PacketMessage(PacketType packetType) {
this.packetType = packetType;
this.timestamp = System.currentTimeMillis();
this.appId = Constant.getSdkAppID();
this.userName = Constant.getUserId();
this.token = Constant.getToken();
}

public String getMsgId() {
@@ -27,6 +32,14 @@ public abstract class PacketMessage {
this.msgId = msgId;
}

public String getToken() {
return token;
}

public void setToken(String token) {
this.token = token;
}

public PacketType getPacketType() {
return packetType;
}


+ 3
- 3
SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/manager/ImManager.java Datei anzeigen

@@ -108,8 +108,8 @@ public class ImManager implements IMInterface {

if (null == connectOptions) connectOptions = new MqttConnectOptions();
connectOptions.setCleanSession(false);
connectOptions.setUserName(imConnectOptions.getClientId());
connectOptions.setPassword(imConnectOptions.getToken().toCharArray());
connectOptions.setUserName(imConnectOptions.getToken());
connectOptions.setPassword(imConnectOptions.getPassword().toCharArray());
connectOptions.setConnectionTimeout(30);
connectOptions.setKeepAliveInterval(20);
connectOptions.setAutomaticReconnect(true);
@@ -117,7 +117,7 @@ public class ImManager implements IMInterface {

try {
mqttClient = new MqttClient("tcp://" + imConnectOptions.getHost() + ":" + imConnectOptions.getPort(),
Constant.getSdkAppID() + imConnectOptions.getClientId() + System.currentTimeMillis(), new MemoryPersistence());
Constant.getSdkAppID() + imConnectOptions.getToken() + System.currentTimeMillis(), new MemoryPersistence());
mqttClient.setCallback(new MqttCallbackExtended() {
@Override
public void connectComplete(boolean reconnect, String serverURI) {


+ 1
- 0
SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/manager/UserManager.java Datei anzeigen

@@ -28,6 +28,7 @@ public class UserManager {
public void setUserInfo(UserInfo userInfo) {
this.userInfo = userInfo;
UserInfo u = new UserInfo();
u.setToken(userInfo.getToken());
u.setUserId(userInfo.getUserId());
u.setGender(userInfo.getGender());
u.setNickName(userInfo.getNickName());


+ 17
- 0
SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/msg/SZYXMessage.java Datei anzeigen

@@ -1,5 +1,7 @@
package cn.org.bjca.trust.android.lib.im.im.msg;

import androidx.annotation.NonNull;

import cn.org.bjca.trust.android.lib.im.bean.UserInfo;
import cn.org.bjca.trust.android.lib.im.enums.MsgType;
import cn.org.bjca.trust.android.lib.im.enums.PacketType;
@@ -118,4 +120,19 @@ public class SZYXMessage extends PacketMessage {
this.textMessage = textMessage;
}

@NonNull
@Override
public String toString() {
return "SZYXMessage{" +
"fromClient=" + fromClient +
", toClientId='" + toClientId + '\'' +
", groupID='" + groupID + '\'' +
", describe='" + describe + '\'' +
", isGroup=" + isGroup +
", isArrive=" + isArrive +
", status=" + status +
", msgType=" + msgType +
", textMessage=" + textMessage +
'}';
}
}

+ 7
- 0
SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/msg/message/SZYXTextMessage.java Datei anzeigen

@@ -14,4 +14,11 @@ public class SZYXTextMessage {
public void setText(String text) {
this.text = text;
}

@Override
public String toString() {
return "SZYXTextMessage{" +
"text='" + text + '\'' +
'}';
}
}

+ 11
- 11
SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/opt/ImConnectOptions.java Datei anzeigen

@@ -3,14 +3,14 @@ package cn.org.bjca.trust.android.lib.im.im.opt;
public class ImConnectOptions {
private String host;
private String port;
private String clientId;
private String token;
private String password;

public ImConnectOptions(String host, String port, String clientId, String token) {
public ImConnectOptions(String host, String port, String token, String password) {
this.host = host;
this.port = port;
this.clientId = clientId;
this.token = token;
this.password = password;
}

public String getHost() {
@@ -29,14 +29,6 @@ public class ImConnectOptions {
this.port = port;
}

public String getClientId() {
return clientId;
}

public void setClientId(String clientId) {
this.clientId = clientId;
}

public String getToken() {
return token;
}
@@ -44,4 +36,12 @@ public class ImConnectOptions {
public void setToken(String token) {
this.token = token;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}
}

+ 4
- 3
SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/manager/SZYXImManager.java Datei anzeigen

@@ -63,15 +63,16 @@ public class SZYXImManager implements SdkInterface {
if (null != imsdkListener) imsdkListener.onConnecting();
LoginBean bean = httpResult.getData();
UserManager.getInstance().setUserInfo(bean.getUserInfo());
imLogin(bean.getHost(), bean.getPort(), bean.getUserInfo().getUserName(), bean.getUserInfo().getPassword());
Constant.setToken(bean.getUserInfo().getToken());
imLogin(bean.getHost(), bean.getPort(), bean.getUserInfo().getToken(), bean.getUserInfo().getPassword());
} else if (null != callback) callback.failed(1001, httpResult.getMsg());
}, throwable -> {
if (null != callback) callback.failed(1001, throwable.getMessage());
});
}

private void imLogin(String host, String port, String clientId, String token) {
IMHelper.getInstance().login(new ImConnectOptions(host, port, clientId, token));
private void imLogin(String host, String port, String token, String password) {
IMHelper.getInstance().login(new ImConnectOptions(host, port, token, password));
}

@Override


+ 1
- 1
app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/ChatActivity.java Datei anzeigen

@@ -29,7 +29,7 @@ public class ChatActivity extends BaseActivity<ActivityChatBinding> {
getBinding().btnSend.setOnClickListener(v -> {
String msg = getBinding().et.getText().toString();
if (!ToolsHelper.isNull(msg)) {
SZYXImSdk.getInstance().sendMsgForTextToC(userId, "hello world", new IMSDKCallback() {
SZYXImSdk.getInstance().sendMsgForTextToC(userId, msg, new IMSDKCallback() {
@Override
public void success() {
ToolsHelper.showMessage("发送消息成功");


+ 24
- 3
app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/login/LoginActivity.java Datei anzeigen

@@ -1,7 +1,9 @@
package cn.org.bjca.trust.android.imdemo.ui.login;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
@@ -21,6 +23,8 @@ import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;

import com.xuqm.base.common.ToolsHelper;

import cn.org.bjca.trust.android.imdemo.databinding.ActivityLoginBinding;
import cn.org.bjca.trust.android.imdemo.ui.MainActivity;
import cn.org.bjca.trust.android.lib.im.SZYXImSdk;
@@ -116,12 +120,24 @@ public class LoginActivity extends AppCompatActivity {
loadingProgressBar.setVisibility(View.VISIBLE);
loginViewModel.login(usernameEditText.getText().toString(),
passwordEditText.getText().toString());

SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("username", usernameEditText.getText().toString());
editor.putString("password", passwordEditText.getText().toString());
editor.apply();
}
});

loadingProgressBar.setVisibility(View.VISIBLE);
// loginViewModel.login(usernameEditText.getText().toString(),
// passwordEditText.getText().toString());
SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
String u = sharedPref.getString("username", "");
String p = sharedPref.getString("password", "");

if (!ToolsHelper.isNull(u) && !ToolsHelper.isNull(p)) {
loadingProgressBar.setVisibility(View.VISIBLE);
loginViewModel.login(u,p);
}

}

private void updateUiWithUser(LoggedInUserView model) {
@@ -144,6 +160,11 @@ public class LoginActivity extends AppCompatActivity {
}

private void showLoginFailed(@StringRes Integer errorString) {
SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("username", "");
editor.putString("password", "");
editor.apply();
Toast.makeText(getApplicationContext(), errorString, Toast.LENGTH_SHORT).show();
}
}

Laden…
Abbrechen
Speichern