解决广播没有发送消息给未登录用户的问题
This commit is contained in:
@@ -126,6 +126,9 @@ message.global_mute_exception_types 401,402,403,404,405,407,408,410,411
|
|||||||
## 离线用户推送过期天数,0是永不过期,建议配置为7天。
|
## 离线用户推送过期天数,0是永不过期,建议配置为7天。
|
||||||
message.push_expired_days 7
|
message.push_expired_days 7
|
||||||
|
|
||||||
|
## 群发消息(包括server api群发和全局频道群发)时,目标用户是否来自于t_user表。如果使用野火托管用户信息,请设置为true,否则设置为false。
|
||||||
|
message.broadcast.target_from_user_table true
|
||||||
|
|
||||||
## 消息转发功能开启时,开关是否不转发server api接口消息。
|
## 消息转发功能开启时,开关是否不转发server api接口消息。
|
||||||
## 当为true时,不转发server api发送的消息;当为false时,转发server api发送的消息。
|
## 当为true时,不转发server api发送的消息;当为false时,转发server api发送的消息。
|
||||||
message.no_forward_admin_message false
|
message.no_forward_admin_message false
|
||||||
|
|||||||
@@ -156,6 +156,9 @@ public final class BrokerConstants {
|
|||||||
public static final String MESSAGE_Push_Expired_Days = "message.push_expired_days";
|
public static final String MESSAGE_Push_Expired_Days = "message.push_expired_days";
|
||||||
|
|
||||||
public static final String MESSAGE_Forward_With_Client_Info = "message.forward_with_client_info";
|
public static final String MESSAGE_Forward_With_Client_Info = "message.forward_with_client_info";
|
||||||
|
|
||||||
|
public static final String BROADCAST_Target_From_User_Table = "message.broadcast.target_from_user_table";
|
||||||
|
|
||||||
public static final String ROBOT_Callback_With_Client_Info = "robot.callback_with_client_info";
|
public static final String ROBOT_Callback_With_Client_Info = "robot.callback_with_client_info";
|
||||||
public static final String CHANNEL_Callback_With_Client_Info = "channel.callback_with_client_info";
|
public static final String CHANNEL_Callback_With_Client_Info = "channel.callback_with_client_info";
|
||||||
|
|
||||||
|
|||||||
@@ -3000,17 +3000,20 @@ public class DatabaseStore {
|
|||||||
return outList;
|
return outList;
|
||||||
}
|
}
|
||||||
|
|
||||||
Set<String> getAllEnds() {
|
Set<String> getAllEnds(boolean fromUserTable) {
|
||||||
Connection connection = null;
|
Connection connection = null;
|
||||||
PreparedStatement statement = null;
|
PreparedStatement statement = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
try {
|
try {
|
||||||
connection = DBUtil.getConnection();
|
connection = DBUtil.getConnection();
|
||||||
String sql = "select distinct(`_uid`) from t_user_session where `_deleted` = 0";
|
String sql;
|
||||||
|
if(fromUserTable) {
|
||||||
|
sql = "select distinct(`_uid`) from t_user_session";
|
||||||
|
} else {
|
||||||
|
sql = "select distinct(`_uid`) from t_user where `_deleted` = 0 and `_type` <> 1 and `_type` <> 2";
|
||||||
|
}
|
||||||
statement = connection.prepareStatement(sql);
|
statement = connection.prepareStatement(sql);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
rs = statement.executeQuery();
|
rs = statement.executeQuery();
|
||||||
Set<String> out = new HashSet<>();
|
Set<String> out = new HashSet<>();
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
|
|||||||
@@ -192,6 +192,8 @@ public class MemoryMessagesStore implements IMessagesStore {
|
|||||||
private boolean keepDisplayNameWhenDestroyUser = true;
|
private boolean keepDisplayNameWhenDestroyUser = true;
|
||||||
private String mRecallForwardUrl = null;
|
private String mRecallForwardUrl = null;
|
||||||
|
|
||||||
|
private boolean mBroadcastTargetFromUserTable = false;
|
||||||
|
|
||||||
private boolean mForwardMessageWithClientInfo = false;
|
private boolean mForwardMessageWithClientInfo = false;
|
||||||
private boolean mRobotCallbackWithClientInfo = false;
|
private boolean mRobotCallbackWithClientInfo = false;
|
||||||
private boolean mChannelCallbackWithClientInfo = false;
|
private boolean mChannelCallbackWithClientInfo = false;
|
||||||
@@ -560,6 +562,13 @@ public class MemoryMessagesStore implements IMessagesStore {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
mBroadcastTargetFromUserTable = Boolean.parseBoolean(server.getConfig().getProperty(BrokerConstants.BROADCAST_Target_From_User_Table, "false"));
|
||||||
|
} catch (Exception e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
mRobotCallbackWithClientInfo = Boolean.parseBoolean(server.getConfig().getProperty(BrokerConstants.ROBOT_Callback_With_Client_Info, "false"));
|
mRobotCallbackWithClientInfo = Boolean.parseBoolean(server.getConfig().getProperty(BrokerConstants.ROBOT_Callback_With_Client_Info, "false"));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -748,7 +757,7 @@ public class MemoryMessagesStore implements IMessagesStore {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Set<String> getAllEnds() {
|
public Set<String> getAllEnds() {
|
||||||
return databaseStore.getAllEnds();
|
return databaseStore.getAllEnds(mBroadcastTargetFromUserTable);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public WFCMessage.PullMessageResult fetchMessage(String user, String exceptClientId, long fromMessageId, int pullType) {
|
public WFCMessage.PullMessageResult fetchMessage(String user, String exceptClientId, long fromMessageId, int pullType) {
|
||||||
|
|||||||
@@ -124,6 +124,9 @@ message.global_mute_exception_types 401,402,403,404,405,407,408,410,411
|
|||||||
## 离线用户推送过期天数,0是永不过期,建议配置为7天。
|
## 离线用户推送过期天数,0是永不过期,建议配置为7天。
|
||||||
message.push_expired_days 7
|
message.push_expired_days 7
|
||||||
|
|
||||||
|
## 群发消息(包括server api群发和全局频道群发)时,目标用户是否来自于t_user表。如果使用野火托管用户信息,请设置为true,否则设置为false。
|
||||||
|
message.broadcast.target_from_user_table true
|
||||||
|
|
||||||
## 消息转发功能开启时,开关是否不转发server api接口消息。
|
## 消息转发功能开启时,开关是否不转发server api接口消息。
|
||||||
## 当为true时,不转发server api发送的消息;当为false时,转发server api发送的消息。
|
## 当为true时,不转发server api发送的消息;当为false时,转发server api发送的消息。
|
||||||
message.no_forward_admin_message false
|
message.no_forward_admin_message false
|
||||||
|
|||||||
Reference in New Issue
Block a user