添加鸿蒙平台的支持
This commit is contained in:
@@ -291,7 +291,10 @@ server.multi_endpoint false
|
|||||||
## 是否支持PC多端登陆,当server.multi_endpoint为true时,此开关无意义,当为false时,可以单独打开PC端多端登录。
|
## 是否支持PC多端登陆,当server.multi_endpoint为true时,此开关无意义,当为false时,可以单独打开PC端多端登录。
|
||||||
server.multi_pc_endpoint false
|
server.multi_pc_endpoint false
|
||||||
|
|
||||||
# 多平台连接状态通知(仅当multi_endpoint为false时有效),true时移动端可以收到pc或web端登录的通知。
|
## 是否支持PAD多端登陆,当server.multi_endpoint为true时,此开关无意义,当为false时,可以单独打开PAD端多端登录。
|
||||||
|
server.multi_pad_endpoint false
|
||||||
|
|
||||||
|
# 多平台连接状态通知(仅当multi_endpoint为false时有效),true时移动端可以收到pc或pad或web端登录的通知。
|
||||||
server.multi_platform_notification true
|
server.multi_platform_notification true
|
||||||
|
|
||||||
# 当pc或者web在线时,手机是否默认静音,默认为true。注意仅影响默认值,用户可以手动切换是否静音。
|
# 当pc或者web在线时,手机是否默认静音,默认为true。注意仅影响默认值,用户可以手动切换是否静音。
|
||||||
|
|||||||
@@ -95,9 +95,15 @@ public class PushServer {
|
|||||||
pushMessage.deviceToken = session.getDeviceToken();
|
pushMessage.deviceToken = session.getDeviceToken();
|
||||||
pushMessage.unReceivedMsg = badge;
|
pushMessage.unReceivedMsg = badge;
|
||||||
pushMessage.userId = session.getUsername();
|
pushMessage.userId = session.getUsername();
|
||||||
if (session.getPlatform() == ProtoConstants.Platform.Platform_iOS || session.getPlatform() == ProtoConstants.Platform.Platform_Android) {
|
if (session.getPlatform() == ProtoConstants.Platform.Platform_iOS ||
|
||||||
|
session.getPlatform() == ProtoConstants.Platform.Platform_iPad ||
|
||||||
|
session.getPlatform() == ProtoConstants.Platform.Platform_Android ||
|
||||||
|
session.getPlatform() == ProtoConstants.Platform.Platform_APad ||
|
||||||
|
session.getPlatform() == ProtoConstants.Platform.Platform_Harmony ||
|
||||||
|
session.getPlatform() == ProtoConstants.Platform.Platform_HarmonyPad
|
||||||
|
) {
|
||||||
String url = androidPushServerUrl;
|
String url = androidPushServerUrl;
|
||||||
if (session.getPlatform() == ProtoConstants.Platform.Platform_iOS) {
|
if (session.getPlatform() == ProtoConstants.Platform.Platform_iOS || session.getPlatform() == ProtoConstants.Platform.Platform_iPad) {
|
||||||
url = iOSPushServerUrl;
|
url = iOSPushServerUrl;
|
||||||
pushMessage.voipDeviceToken = session.getVoipDeviceToken();
|
pushMessage.voipDeviceToken = session.getVoipDeviceToken();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -135,6 +135,7 @@ public final class BrokerConstants {
|
|||||||
|
|
||||||
public static final String SERVER_MULTI_ENDPOINT = "server.multi_endpoint";
|
public static final String SERVER_MULTI_ENDPOINT = "server.multi_endpoint";
|
||||||
public static final String SERVER_MULTI_PC_ENDPOINT = "server.multi_pc_endpoint";
|
public static final String SERVER_MULTI_PC_ENDPOINT = "server.multi_pc_endpoint";
|
||||||
|
public static final String SERVER_MULTI_PAD_ENDPOINT = "server.multi_pad_endpoint";
|
||||||
public static final String SERVER_MULTI_PLATFROM_NOTIFICATION = "server.multi_platform_notification";
|
public static final String SERVER_MULTI_PLATFROM_NOTIFICATION = "server.multi_platform_notification";
|
||||||
public static final String SERVER_MOBILE_DEFAULT_SILENT_WHEN_PC_ONLINE = "server.mobile_default_silent_when_pc_online";
|
public static final String SERVER_MOBILE_DEFAULT_SILENT_WHEN_PC_ONLINE = "server.mobile_default_silent_when_pc_online";
|
||||||
public static final String SERVER_CLIENT_SUPPORT_KICKOFF_EVENT = "server.client_support_kickoff_event";
|
public static final String SERVER_CLIENT_SUPPORT_KICKOFF_EVENT = "server.client_support_kickoff_event";
|
||||||
|
|||||||
@@ -1798,10 +1798,12 @@ public class DatabaseStore {
|
|||||||
try {
|
try {
|
||||||
connection = DBUtil.getConnection();
|
connection = DBUtil.getConnection();
|
||||||
String sql;
|
String sql;
|
||||||
if (platform == ProtoConstants.Platform.Platform_Windows || platform == ProtoConstants.Platform.Platform_OSX || platform == ProtoConstants.Platform.Platform_LINUX) {
|
if (platform == ProtoConstants.Platform.Platform_Windows || platform == ProtoConstants.Platform.Platform_OSX || platform == ProtoConstants.Platform.Platform_LINUX || platform == ProtoConstants.Platform.Platform_HarmonyPC) {
|
||||||
|
sql = "update t_user_session set `_deleted` = ?, `_token` = ?, `_voip_token` = ?, `_dt` = ? where `_uid`=? and (`_platform` = ? or `_platform` = ? or `_platform` = ? or `_platform` = ?) and `_cid` <> ? and `_deleted` = 0";
|
||||||
|
} else if(platform == ProtoConstants.Platform.Platform_iOS || platform == ProtoConstants.Platform.Platform_Android || platform == ProtoConstants.Platform.Platform_Harmony) {
|
||||||
|
sql = "update t_user_session set `_deleted` = ?, `_token` = ?, `_voip_token` = ?, `_dt` = ? where `_uid`=? and (`_platform` = ? or `_platform` = ? or `_platform` = ?) and `_cid` <> ? and `_deleted` = 0";
|
||||||
|
} else if(platform == ProtoConstants.Platform.Platform_iPad || platform == ProtoConstants.Platform.Platform_APad || platform == ProtoConstants.Platform.Platform_HarmonyPad) {
|
||||||
sql = "update t_user_session set `_deleted` = ?, `_token` = ?, `_voip_token` = ?, `_dt` = ? where `_uid`=? and (`_platform` = ? or `_platform` = ? or `_platform` = ?) and `_cid` <> ? and `_deleted` = 0";
|
sql = "update t_user_session set `_deleted` = ?, `_token` = ?, `_voip_token` = ?, `_dt` = ? where `_uid`=? and (`_platform` = ? or `_platform` = ? or `_platform` = ?) and `_cid` <> ? and `_deleted` = 0";
|
||||||
} else if(platform == ProtoConstants.Platform.Platform_iOS || platform == ProtoConstants.Platform.Platform_Android) {
|
|
||||||
sql = "update t_user_session set `_deleted` = ?, `_token` = ?, `_voip_token` = ?, `_dt` = ? where `_uid`=? and (`_platform` = ? or `_platform` = ?) and `_cid` <> ? and `_deleted` = 0";
|
|
||||||
} else {
|
} else {
|
||||||
sql = "update t_user_session set `_deleted` = ?, `_token` = ?, `_voip_token` = ?, `_dt` = ? where `_uid`=? and `_platform` = ? and `_cid` <> ? and `_deleted` = 0";
|
sql = "update t_user_session set `_deleted` = ?, `_token` = ?, `_voip_token` = ?, `_dt` = ? where `_uid`=? and `_platform` = ? and `_cid` <> ? and `_deleted` = 0";
|
||||||
}
|
}
|
||||||
@@ -1816,13 +1818,19 @@ public class DatabaseStore {
|
|||||||
|
|
||||||
statement.setString(index++, uid);
|
statement.setString(index++, uid);
|
||||||
|
|
||||||
if (platform == ProtoConstants.Platform.Platform_Windows || platform == ProtoConstants.Platform.Platform_OSX || platform == ProtoConstants.Platform.Platform_LINUX) {
|
if (platform == ProtoConstants.Platform.Platform_Windows || platform == ProtoConstants.Platform.Platform_OSX || platform == ProtoConstants.Platform.Platform_LINUX || platform == ProtoConstants.Platform.Platform_HarmonyPC) {
|
||||||
statement.setInt(index++, ProtoConstants.Platform.Platform_Windows);
|
statement.setInt(index++, ProtoConstants.Platform.Platform_Windows);
|
||||||
statement.setInt(index++, ProtoConstants.Platform.Platform_OSX);
|
statement.setInt(index++, ProtoConstants.Platform.Platform_OSX);
|
||||||
statement.setInt(index++, ProtoConstants.Platform.Platform_LINUX);
|
statement.setInt(index++, ProtoConstants.Platform.Platform_LINUX);
|
||||||
} else if(platform == ProtoConstants.Platform.Platform_iOS || platform == ProtoConstants.Platform.Platform_Android) {
|
statement.setInt(index++, ProtoConstants.Platform.Platform_HarmonyPC);
|
||||||
|
} else if(platform == ProtoConstants.Platform.Platform_iOS || platform == ProtoConstants.Platform.Platform_Android || platform == ProtoConstants.Platform.Platform_Harmony) {
|
||||||
statement.setInt(index++, ProtoConstants.Platform.Platform_iOS);
|
statement.setInt(index++, ProtoConstants.Platform.Platform_iOS);
|
||||||
statement.setInt(index++, ProtoConstants.Platform.Platform_Android);
|
statement.setInt(index++, ProtoConstants.Platform.Platform_Android);
|
||||||
|
statement.setInt(index++, ProtoConstants.Platform.Platform_Harmony);
|
||||||
|
} else if(platform == ProtoConstants.Platform.Platform_iPad || platform == ProtoConstants.Platform.Platform_APad || platform == ProtoConstants.Platform.Platform_HarmonyPad) {
|
||||||
|
statement.setInt(index++, ProtoConstants.Platform.Platform_iPad);
|
||||||
|
statement.setInt(index++, ProtoConstants.Platform.Platform_APad);
|
||||||
|
statement.setInt(index++, ProtoConstants.Platform.Platform_HarmonyPad);
|
||||||
} else {
|
} else {
|
||||||
statement.setInt(index++, platform);
|
statement.setInt(index++, platform);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2764,6 +2764,7 @@ public class MemoryMessagesStore implements IMessagesStore {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String pcValue = null;
|
String pcValue = null;
|
||||||
|
String padValue = null;
|
||||||
for (MemorySessionStore.Session s : m_Server.getStore().sessionsStore().sessionForUser(session.username)) {
|
for (MemorySessionStore.Session s : m_Server.getStore().sessionsStore().sessionForUser(session.username)) {
|
||||||
if (s.getDeleted() != 0 || !m_Server.getConnectionsManager().isConnected(s.getClientID())) {
|
if (s.getDeleted() != 0 || !m_Server.getConnectionsManager().isConnected(s.getClientID())) {
|
||||||
continue;
|
continue;
|
||||||
@@ -2773,8 +2774,14 @@ public class MemoryMessagesStore implements IMessagesStore {
|
|||||||
case Platform_LINUX:
|
case Platform_LINUX:
|
||||||
case Platform_Windows:
|
case Platform_Windows:
|
||||||
case Platform_OSX:
|
case Platform_OSX:
|
||||||
|
case Platform_HarmonyPC:
|
||||||
pcValue = System.currentTimeMillis() + "|" + s.getPlatform() + "|" + s.getClientID() + "|" + s.getPhoneName();
|
pcValue = System.currentTimeMillis() + "|" + s.getPlatform() + "|" + s.getClientID() + "|" + s.getPhoneName();
|
||||||
break;
|
break;
|
||||||
|
case Platform_iPad:
|
||||||
|
case Platform_APad:
|
||||||
|
case Platform_HarmonyPad:
|
||||||
|
padValue = System.currentTimeMillis() + "|" + s.getPlatform() + "|" + s.getClientID() + "|" + s.getPhoneName();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2784,6 +2791,11 @@ public class MemoryMessagesStore implements IMessagesStore {
|
|||||||
if (!isOnlineValueEqual(pcentry, pcValue)) {
|
if (!isOnlineValueEqual(pcentry, pcValue)) {
|
||||||
updateUserSettings(session.username, WFCMessage.ModifyUserSettingReq.newBuilder().setScope(kUserSettingPCOnline).setKey("PC").setValue(pcValue==null?"":pcValue).build(), session.clientID);
|
updateUserSettings(session.username, WFCMessage.ModifyUserSettingReq.newBuilder().setScope(kUserSettingPCOnline).setKey("PC").setValue(pcValue==null?"":pcValue).build(), session.clientID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WFCMessage.UserSettingEntry padentry = getUserSetting(session.getUsername(), kUserSettingPCOnline, "Pad");
|
||||||
|
if (!isOnlineValueEqual(padentry, padValue)) {
|
||||||
|
updateUserSettings(session.username, WFCMessage.ModifyUserSettingReq.newBuilder().setScope(kUserSettingPCOnline).setKey("Pad").setValue(padValue==null?"":padValue).build(), session.clientID);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ public class MemorySessionStore implements ISessionsStore {
|
|||||||
|
|
||||||
private boolean supportMultiEndpoint = false;
|
private boolean supportMultiEndpoint = false;
|
||||||
private boolean supportMultiPCEndpoint = false;
|
private boolean supportMultiPCEndpoint = false;
|
||||||
|
private boolean supportMultiPadEndpoint = false;
|
||||||
private boolean clientSupportKickoff = false;
|
private boolean clientSupportKickoff = false;
|
||||||
|
|
||||||
public static class Session implements Comparable<Session>{
|
public static class Session implements Comparable<Session>{
|
||||||
@@ -292,6 +293,10 @@ public class MemorySessionStore implements ISessionsStore {
|
|||||||
supportMultiPCEndpoint = Boolean.parseBoolean(server.getConfig().getProperty(BrokerConstants.SERVER_MULTI_PC_ENDPOINT, "false"));
|
supportMultiPCEndpoint = Boolean.parseBoolean(server.getConfig().getProperty(BrokerConstants.SERVER_MULTI_PC_ENDPOINT, "false"));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
|
supportMultiPadEndpoint = Boolean.parseBoolean(server.getConfig().getProperty(BrokerConstants.SERVER_MULTI_PAD_ENDPOINT, "false"));
|
||||||
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
clientSupportKickoff = Boolean.parseBoolean(server.getConfig().getProperty(BrokerConstants.SERVER_CLIENT_SUPPORT_KICKOFF_EVENT, "false"));
|
clientSupportKickoff = Boolean.parseBoolean(server.getConfig().getProperty(BrokerConstants.SERVER_CLIENT_SUPPORT_KICKOFF_EVENT, "false"));
|
||||||
@@ -396,6 +401,10 @@ public class MemorySessionStore implements ISessionsStore {
|
|||||||
&& !(platform == ProtoConstants.Platform.Platform_Windows && supportMultiPCEndpoint)
|
&& !(platform == ProtoConstants.Platform.Platform_Windows && supportMultiPCEndpoint)
|
||||||
&& !(platform == ProtoConstants.Platform.Platform_LINUX && supportMultiPCEndpoint)
|
&& !(platform == ProtoConstants.Platform.Platform_LINUX && supportMultiPCEndpoint)
|
||||||
&& !(platform == ProtoConstants.Platform.Platform_OSX && supportMultiPCEndpoint)
|
&& !(platform == ProtoConstants.Platform.Platform_OSX && supportMultiPCEndpoint)
|
||||||
|
&& !(platform == ProtoConstants.Platform.Platform_HarmonyPC && supportMultiPCEndpoint)
|
||||||
|
&& !(platform == ProtoConstants.Platform.Platform_iPad && supportMultiPadEndpoint)
|
||||||
|
&& !(platform == ProtoConstants.Platform.Platform_APad && supportMultiPadEndpoint)
|
||||||
|
&& !(platform == ProtoConstants.Platform.Platform_HarmonyPad && supportMultiPadEndpoint)
|
||||||
) {
|
) {
|
||||||
databaseStore.clearMultiEndpoint(username, clientID, platform);
|
databaseStore.clearMultiEndpoint(username, clientID, platform);
|
||||||
if (userSessions.get(username) != null) {
|
if (userSessions.get(username) != null) {
|
||||||
@@ -410,15 +419,19 @@ public class MemorySessionStore implements ISessionsStore {
|
|||||||
}
|
}
|
||||||
|
|
||||||
boolean remove = false;
|
boolean remove = false;
|
||||||
if (platform == ProtoConstants.Platform.Platform_Android || platform == ProtoConstants.Platform.Platform_iOS) {
|
if (platform == ProtoConstants.Platform.Platform_Android || platform == ProtoConstants.Platform.Platform_iOS || platform == ProtoConstants.Platform.Platform_Harmony) {
|
||||||
if (s.getPlatform() == ProtoConstants.Platform.Platform_Android || s.getPlatform() == ProtoConstants.Platform.Platform_iOS) {
|
if (s.getPlatform() == ProtoConstants.Platform.Platform_Android || s.getPlatform() == ProtoConstants.Platform.Platform_iOS || s.getPlatform() == ProtoConstants.Platform.Platform_Harmony) {
|
||||||
remove = true;
|
remove = true;
|
||||||
}
|
}
|
||||||
} else if(platform == ProtoConstants.Platform.Platform_OSX || platform == ProtoConstants.Platform.Platform_Windows || platform == ProtoConstants.Platform.Platform_LINUX) {
|
} else if(platform == ProtoConstants.Platform.Platform_iPad || platform == ProtoConstants.Platform.Platform_APad || platform == ProtoConstants.Platform.Platform_HarmonyPad) {
|
||||||
if (s.getPlatform() == ProtoConstants.Platform.Platform_OSX || s.getPlatform() == ProtoConstants.Platform.Platform_Windows || s.getPlatform() == ProtoConstants.Platform.Platform_LINUX) {
|
if (s.getPlatform() == ProtoConstants.Platform.Platform_iPad || s.getPlatform() == ProtoConstants.Platform.Platform_APad || s.getPlatform() == ProtoConstants.Platform.Platform_HarmonyPad) {
|
||||||
remove = true;
|
remove = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else if(platform == ProtoConstants.Platform.Platform_OSX || platform == ProtoConstants.Platform.Platform_Windows || platform == ProtoConstants.Platform.Platform_LINUX || platform == ProtoConstants.Platform.Platform_HarmonyPC) {
|
||||||
|
if (s.getPlatform() == ProtoConstants.Platform.Platform_OSX || s.getPlatform() == ProtoConstants.Platform.Platform_Windows || s.getPlatform() == ProtoConstants.Platform.Platform_LINUX || s.getPlatform() == ProtoConstants.Platform.Platform_HarmonyPC) {
|
||||||
|
remove = true;
|
||||||
|
}
|
||||||
|
} else { //web, microapp
|
||||||
if (s.getPlatform() ==platform) {
|
if (s.getPlatform() ==platform) {
|
||||||
remove = true;
|
remove = true;
|
||||||
}
|
}
|
||||||
@@ -747,7 +760,12 @@ public class MemorySessionStore implements ISessionsStore {
|
|||||||
if (session.getPlatform() == ProtoConstants.Platform.Platform_LINUX
|
if (session.getPlatform() == ProtoConstants.Platform.Platform_LINUX
|
||||||
|| session.getPlatform() == ProtoConstants.Platform.Platform_WEB
|
|| session.getPlatform() == ProtoConstants.Platform.Platform_WEB
|
||||||
|| session.getPlatform() == ProtoConstants.Platform.Platform_Windows
|
|| session.getPlatform() == ProtoConstants.Platform.Platform_Windows
|
||||||
|| session.getPlatform() == ProtoConstants.Platform.Platform_OSX) {
|
|| session.getPlatform() == ProtoConstants.Platform.Platform_OSX
|
||||||
|
|| session.getPlatform() == ProtoConstants.Platform.Platform_HarmonyPC
|
||||||
|
|| session.getPlatform() == ProtoConstants.Platform.Platform_iPad
|
||||||
|
|| session.getPlatform() == ProtoConstants.Platform.Platform_APad
|
||||||
|
|| session.getPlatform() == ProtoConstants.Platform.Platform_HarmonyPad
|
||||||
|
) {
|
||||||
databaseStore.updateSessionDeleted(operator, pcClientId, 1);
|
databaseStore.updateSessionDeleted(operator, pcClientId, 1);
|
||||||
sessions.remove(pcClientId);
|
sessions.remove(pcClientId);
|
||||||
mServer.getProcessor().kickoffSession(session);
|
mServer.getProcessor().kickoffSession(session);
|
||||||
|
|||||||
@@ -223,7 +223,12 @@ public class MessagesPublisher {
|
|||||||
if (targetSession.getPlatform() == ProtoConstants.Platform.Platform_WEB
|
if (targetSession.getPlatform() == ProtoConstants.Platform.Platform_WEB
|
||||||
|| targetSession.getPlatform() == ProtoConstants.Platform.Platform_Windows
|
|| targetSession.getPlatform() == ProtoConstants.Platform.Platform_Windows
|
||||||
|| targetSession.getPlatform() == ProtoConstants.Platform.Platform_LINUX
|
|| targetSession.getPlatform() == ProtoConstants.Platform.Platform_LINUX
|
||||||
|| targetSession.getPlatform() == ProtoConstants.Platform.Platform_OSX) {
|
|| targetSession.getPlatform() == ProtoConstants.Platform.Platform_OSX
|
||||||
|
|| targetSession.getPlatform() == ProtoConstants.Platform.Platform_HarmonyPC
|
||||||
|
|| targetSession.getPlatform() == ProtoConstants.Platform.Platform_iPad
|
||||||
|
|| targetSession.getPlatform() == ProtoConstants.Platform.Platform_APad
|
||||||
|
|| targetSession.getPlatform() == ProtoConstants.Platform.Platform_HarmonyPad
|
||||||
|
) {
|
||||||
boolean targetIsActive = this.connectionDescriptors.isConnected(targetSession.getClientSession().clientID);
|
boolean targetIsActive = this.connectionDescriptors.isConnected(targetSession.getClientSession().clientID);
|
||||||
if (targetIsActive) {
|
if (targetIsActive) {
|
||||||
isPcOnline = true;
|
isPcOnline = true;
|
||||||
|
|||||||
@@ -53,6 +53,9 @@ public class ProtoConstants {
|
|||||||
int Platform_LINUX = 7;
|
int Platform_LINUX = 7;
|
||||||
int Platform_iPad = 8;
|
int Platform_iPad = 8;
|
||||||
int Platform_APad = 9;
|
int Platform_APad = 9;
|
||||||
|
int Platform_Harmony = 10;
|
||||||
|
int Platform_HarmonyPad = 11;
|
||||||
|
int Platform_HarmonyPC = 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
//message NotifyMessage & PullMessageRequest -> type
|
//message NotifyMessage & PullMessageRequest -> type
|
||||||
|
|||||||
@@ -289,7 +289,10 @@ server.multi_endpoint false
|
|||||||
## 是否支持PC多端登陆,当server.multi_endpoint为true时,此开关无意义,当为false时,可以单独打开PC端多端登录。
|
## 是否支持PC多端登陆,当server.multi_endpoint为true时,此开关无意义,当为false时,可以单独打开PC端多端登录。
|
||||||
server.multi_pc_endpoint false
|
server.multi_pc_endpoint false
|
||||||
|
|
||||||
# 多平台连接状态通知(仅当multi_endpoint为false时有效),true时移动端可以收到pc或web端登录的通知。
|
## 是否支持PAD多端登陆,当server.multi_endpoint为true时,此开关无意义,当为false时,可以单独打开PAD端多端登录。
|
||||||
|
server.multi_pad_endpoint false
|
||||||
|
|
||||||
|
# 多平台连接状态通知(仅当multi_endpoint为false时有效),true时移动端可以收到pc或pad或web端登录的通知。
|
||||||
server.multi_platform_notification true
|
server.multi_platform_notification true
|
||||||
|
|
||||||
# 当pc或者web在线时,手机是否默认静音,默认为true。注意仅影响默认值,用户可以手动切换是否静音。
|
# 当pc或者web在线时,手机是否默认静音,默认为true。注意仅影响默认值,用户可以手动切换是否静音。
|
||||||
|
|||||||
Reference in New Issue
Block a user