发送消息绑定用户信息
这个提交包含在:
父节点
b323e3e248
当前提交
7254ff441a
@ -2,7 +2,7 @@ package cn.org.bjca.trust.android.lib.im.bean;
|
|||||||
|
|
||||||
public class UserInfo {
|
public class UserInfo {
|
||||||
private String userId;
|
private String userId;
|
||||||
private String userName;
|
private String token;
|
||||||
private String password;
|
private String password;
|
||||||
private String appId;
|
private String appId;
|
||||||
private String osType;
|
private String osType;
|
||||||
@ -18,12 +18,12 @@ public class UserInfo {
|
|||||||
this.userId = userId;
|
this.userId = userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getUserName() {
|
public String getToken() {
|
||||||
return userName;
|
return token;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUserName(String userName) {
|
public void setToken(String token) {
|
||||||
this.userName = userName;
|
this.token = token;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPassword() {
|
public String getPassword() {
|
||||||
|
|||||||
@ -7,6 +7,7 @@ public class Constant {
|
|||||||
|
|
||||||
private static String sdkAppID;
|
private static String sdkAppID;
|
||||||
private static String userId;
|
private static String userId;
|
||||||
|
private static String token;
|
||||||
|
|
||||||
public static void setSdkAppID(String sdkAppID) {
|
public static void setSdkAppID(String sdkAppID) {
|
||||||
Constant.sdkAppID = sdkAppID;
|
Constant.sdkAppID = sdkAppID;
|
||||||
@ -23,4 +24,12 @@ public class Constant {
|
|||||||
public static void setUserId(String userId) {
|
public static void setUserId(String userId) {
|
||||||
Constant.userId = userId;
|
Constant.userId = userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getToken() {
|
||||||
|
return token;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setToken(String token) {
|
||||||
|
Constant.token = token;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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.BuildConfig;
|
||||||
import cn.org.bjca.trust.android.lib.im.cfg.Constant;
|
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.Interceptor;
|
||||||
import okhttp3.Response;
|
import okhttp3.Response;
|
||||||
|
|
||||||
@ -17,8 +18,9 @@ public class HeaderInterceptor implements Interceptor {
|
|||||||
return chain.proceed(chain.request().newBuilder()
|
return chain.proceed(chain.request().newBuilder()
|
||||||
.header("AppID", Constant.getSdkAppID())
|
.header("AppID", Constant.getSdkAppID())
|
||||||
.header("UserId", Constant.getUserId())
|
.header("UserId", Constant.getUserId())
|
||||||
|
.header("token", null == Constant.getToken() ? "" : Constant.getToken())
|
||||||
.addHeader("Version", BuildConfig.versionName)
|
.addHeader("Version", BuildConfig.versionName)
|
||||||
.addHeader("OsType", "1")
|
.addHeader("OsType", String.valueOf(OsType.ANDROID.type()))
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,12 +11,17 @@ public abstract class PacketMessage {
|
|||||||
*/
|
*/
|
||||||
private String msgId = UUID.randomUUID().toString();
|
private String msgId = UUID.randomUUID().toString();
|
||||||
private PacketType packetType;
|
private PacketType packetType;
|
||||||
private long timestamp = System.currentTimeMillis();
|
private long timestamp;
|
||||||
private String appId = Constant.getSdkAppID();
|
private String appId;
|
||||||
private String userName = Constant.getUserId();
|
private String userName;
|
||||||
|
private String token;
|
||||||
|
|
||||||
public PacketMessage(PacketType packetType) {
|
public PacketMessage(PacketType packetType) {
|
||||||
this.packetType = packetType;
|
this.packetType = packetType;
|
||||||
|
this.timestamp = System.currentTimeMillis();
|
||||||
|
this.appId = Constant.getSdkAppID();
|
||||||
|
this.userName = Constant.getUserId();
|
||||||
|
this.token = Constant.getToken();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getMsgId() {
|
public String getMsgId() {
|
||||||
@ -27,6 +32,14 @@ public abstract class PacketMessage {
|
|||||||
this.msgId = msgId;
|
this.msgId = msgId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getToken() {
|
||||||
|
return token;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setToken(String token) {
|
||||||
|
this.token = token;
|
||||||
|
}
|
||||||
|
|
||||||
public PacketType getPacketType() {
|
public PacketType getPacketType() {
|
||||||
return packetType;
|
return packetType;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -108,8 +108,8 @@ public class ImManager implements IMInterface {
|
|||||||
|
|
||||||
if (null == connectOptions) connectOptions = new MqttConnectOptions();
|
if (null == connectOptions) connectOptions = new MqttConnectOptions();
|
||||||
connectOptions.setCleanSession(false);
|
connectOptions.setCleanSession(false);
|
||||||
connectOptions.setUserName(imConnectOptions.getClientId());
|
connectOptions.setUserName(imConnectOptions.getToken());
|
||||||
connectOptions.setPassword(imConnectOptions.getToken().toCharArray());
|
connectOptions.setPassword(imConnectOptions.getPassword().toCharArray());
|
||||||
connectOptions.setConnectionTimeout(30);
|
connectOptions.setConnectionTimeout(30);
|
||||||
connectOptions.setKeepAliveInterval(20);
|
connectOptions.setKeepAliveInterval(20);
|
||||||
connectOptions.setAutomaticReconnect(true);
|
connectOptions.setAutomaticReconnect(true);
|
||||||
@ -117,7 +117,7 @@ public class ImManager implements IMInterface {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
mqttClient = new MqttClient("tcp://" + imConnectOptions.getHost() + ":" + imConnectOptions.getPort(),
|
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() {
|
mqttClient.setCallback(new MqttCallbackExtended() {
|
||||||
@Override
|
@Override
|
||||||
public void connectComplete(boolean reconnect, String serverURI) {
|
public void connectComplete(boolean reconnect, String serverURI) {
|
||||||
|
|||||||
@ -28,6 +28,7 @@ public class UserManager {
|
|||||||
public void setUserInfo(UserInfo userInfo) {
|
public void setUserInfo(UserInfo userInfo) {
|
||||||
this.userInfo = userInfo;
|
this.userInfo = userInfo;
|
||||||
UserInfo u = new UserInfo();
|
UserInfo u = new UserInfo();
|
||||||
|
u.setToken(userInfo.getToken());
|
||||||
u.setUserId(userInfo.getUserId());
|
u.setUserId(userInfo.getUserId());
|
||||||
u.setGender(userInfo.getGender());
|
u.setGender(userInfo.getGender());
|
||||||
u.setNickName(userInfo.getNickName());
|
u.setNickName(userInfo.getNickName());
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
package cn.org.bjca.trust.android.lib.im.im.msg;
|
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.bean.UserInfo;
|
||||||
import cn.org.bjca.trust.android.lib.im.enums.MsgType;
|
import cn.org.bjca.trust.android.lib.im.enums.MsgType;
|
||||||
import cn.org.bjca.trust.android.lib.im.enums.PacketType;
|
import cn.org.bjca.trust.android.lib.im.enums.PacketType;
|
||||||
@ -118,4 +120,19 @@ public class SZYXMessage extends PacketMessage {
|
|||||||
this.textMessage = textMessage;
|
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 +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,4 +14,11 @@ public class SZYXTextMessage {
|
|||||||
public void setText(String text) {
|
public void setText(String text) {
|
||||||
this.text = text;
|
this.text = text;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "SZYXTextMessage{" +
|
||||||
|
"text='" + text + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,14 +3,14 @@ package cn.org.bjca.trust.android.lib.im.im.opt;
|
|||||||
public class ImConnectOptions {
|
public class ImConnectOptions {
|
||||||
private String host;
|
private String host;
|
||||||
private String port;
|
private String port;
|
||||||
private String clientId;
|
|
||||||
private String token;
|
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.host = host;
|
||||||
this.port = port;
|
this.port = port;
|
||||||
this.clientId = clientId;
|
|
||||||
this.token = token;
|
this.token = token;
|
||||||
|
this.password = password;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getHost() {
|
public String getHost() {
|
||||||
@ -29,14 +29,6 @@ public class ImConnectOptions {
|
|||||||
this.port = port;
|
this.port = port;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getClientId() {
|
|
||||||
return clientId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setClientId(String clientId) {
|
|
||||||
this.clientId = clientId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getToken() {
|
public String getToken() {
|
||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
@ -44,4 +36,12 @@ public class ImConnectOptions {
|
|||||||
public void setToken(String token) {
|
public void setToken(String token) {
|
||||||
this.token = token;
|
this.token = token;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getPassword() {
|
||||||
|
return password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPassword(String password) {
|
||||||
|
this.password = password;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -63,15 +63,16 @@ public class SZYXImManager implements SdkInterface {
|
|||||||
if (null != imsdkListener) imsdkListener.onConnecting();
|
if (null != imsdkListener) imsdkListener.onConnecting();
|
||||||
LoginBean bean = httpResult.getData();
|
LoginBean bean = httpResult.getData();
|
||||||
UserManager.getInstance().setUserInfo(bean.getUserInfo());
|
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());
|
} else if (null != callback) callback.failed(1001, httpResult.getMsg());
|
||||||
}, throwable -> {
|
}, throwable -> {
|
||||||
if (null != callback) callback.failed(1001, throwable.getMessage());
|
if (null != callback) callback.failed(1001, throwable.getMessage());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void imLogin(String host, String port, String clientId, String token) {
|
private void imLogin(String host, String port, String token, String password) {
|
||||||
IMHelper.getInstance().login(new ImConnectOptions(host, port, clientId, token));
|
IMHelper.getInstance().login(new ImConnectOptions(host, port, token, password));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -29,7 +29,7 @@ public class ChatActivity extends BaseActivity<ActivityChatBinding> {
|
|||||||
getBinding().btnSend.setOnClickListener(v -> {
|
getBinding().btnSend.setOnClickListener(v -> {
|
||||||
String msg = getBinding().et.getText().toString();
|
String msg = getBinding().et.getText().toString();
|
||||||
if (!ToolsHelper.isNull(msg)) {
|
if (!ToolsHelper.isNull(msg)) {
|
||||||
SZYXImSdk.getInstance().sendMsgForTextToC(userId, "hello world", new IMSDKCallback() {
|
SZYXImSdk.getInstance().sendMsgForTextToC(userId, msg, new IMSDKCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void success() {
|
public void success() {
|
||||||
ToolsHelper.showMessage("发送消息成功");
|
ToolsHelper.showMessage("发送消息成功");
|
||||||
|
|||||||
@ -1,7 +1,9 @@
|
|||||||
package cn.org.bjca.trust.android.imdemo.ui.login;
|
package cn.org.bjca.trust.android.imdemo.ui.login;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
@ -21,6 +23,8 @@ import androidx.appcompat.app.AppCompatActivity;
|
|||||||
import androidx.lifecycle.Observer;
|
import androidx.lifecycle.Observer;
|
||||||
import androidx.lifecycle.ViewModelProvider;
|
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.databinding.ActivityLoginBinding;
|
||||||
import cn.org.bjca.trust.android.imdemo.ui.MainActivity;
|
import cn.org.bjca.trust.android.imdemo.ui.MainActivity;
|
||||||
import cn.org.bjca.trust.android.lib.im.SZYXImSdk;
|
import cn.org.bjca.trust.android.lib.im.SZYXImSdk;
|
||||||
@ -116,12 +120,24 @@ public class LoginActivity extends AppCompatActivity {
|
|||||||
loadingProgressBar.setVisibility(View.VISIBLE);
|
loadingProgressBar.setVisibility(View.VISIBLE);
|
||||||
loginViewModel.login(usernameEditText.getText().toString(),
|
loginViewModel.login(usernameEditText.getText().toString(),
|
||||||
passwordEditText.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);
|
SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
|
||||||
// loginViewModel.login(usernameEditText.getText().toString(),
|
String u = sharedPref.getString("username", "");
|
||||||
// passwordEditText.getText().toString());
|
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) {
|
private void updateUiWithUser(LoggedInUserView model) {
|
||||||
@ -144,6 +160,11 @@ public class LoginActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void showLoginFailed(@StringRes Integer errorString) {
|
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();
|
Toast.makeText(getApplicationContext(), errorString, Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
正在加载...
在新工单中引用
屏蔽一个用户