From 1f45372b2489fe2301e1740f3b9206a197282500 Mon Sep 17 00:00:00 2001 From: imhao183 Date: Thu, 23 Apr 2020 18:44:45 +0800 Subject: [PATCH] Revert "update" This reverts commit 5ec14502f83cc645fbf2e35a891e84efc7037016. --- broker/config/wildfirechat.conf | 8 ++++++-- broker/src/main/java/io/moquette/BrokerConstants.java | 2 ++ .../io/moquette/imhandler/GetMediaUploadTokenHandler.java | 4 ++-- .../io/moquette/imhandler/GetQiniuUploadTokenHandler.java | 4 ++-- .../src/main/java/io/moquette/imhandler/RouteHandler.java | 4 +++- .../java/io/moquette/persistence/MemoryMessagesStore.java | 3 ++- broker/src/main/java/io/moquette/server/Server.java | 4 ++++ .../java/io/moquette/server/config/MediaServerConfig.java | 1 + distribution/src/main/resources/wildfirechat.conf | 8 ++++++-- 9 files changed, 28 insertions(+), 10 deletions(-) diff --git a/broker/config/wildfirechat.conf b/broker/config/wildfirechat.conf index 18c6cf6c..9329b3ea 100755 --- a/broker/config/wildfirechat.conf +++ b/broker/config/wildfirechat.conf @@ -9,13 +9,17 @@ #********************************************************************* # Server configuration #********************************************************************* -#服务器的接入IP。给客户端提供是${server.ip}。客户端会从server.ip的80端口进行访问并获取到长链接端口,所有需要保证80/1883 TCP端口的畅通。 -#(如果您部署云服务器上或者具有独立公网出口的服务器上,请改为对应的公网IP;如果您部署在在内网环境下,在内网使用,这个地方改成内网地址) +#服务器的接入IP。给客户端提供是${server.ip}和${http_port}。 +#客户端会从${http_port}端口获取到长链接端口。这个地址一定要改成客户端可以访问到的IP地址 +# (如果您部署云服务器上或者具有独立公网出口的服务器上,请改为对应的公网IP;如果您部署在在内网环境下,在内网使用,这个地方改成内网地址) server.ip 0.0.0.0 ##原生客户端长链接端口 port 1883 +##客户端短链接端口 +http_port 80 + ##WEB客户端长链接端口 websocket_port 8083 diff --git a/broker/src/main/java/io/moquette/BrokerConstants.java b/broker/src/main/java/io/moquette/BrokerConstants.java index 20bacf65..4fa39ad2 100755 --- a/broker/src/main/java/io/moquette/BrokerConstants.java +++ b/broker/src/main/java/io/moquette/BrokerConstants.java @@ -26,6 +26,7 @@ public final class BrokerConstants { public static final String SERVER_IP_PROPERTY_NAME = "server.ip"; public static final String PORT_PROPERTY_NAME = "port"; public static final String HOST_PROPERTY_NAME = "host"; + public static final String HTTP_SERVER_PORT = "http_port"; public static final String HTTP_LOCAL_PORT = "local_port"; public static final String HTTP_ADMIN_PORT = "http.admin.port"; @@ -95,6 +96,7 @@ public final class BrokerConstants { public static final String HZ_Cluster_Node_External_IP = "node_external_ip"; public static final String HZ_Cluster_Node_External_Long_Port = "node_external_long_port"; + public static final String HZ_Cluster_Node_External_Short_Port = "node_external_short_port"; public static final String HZ_Cluster_Node_ID = "node_id"; public static final String HTTP_SERVER_SECRET_KEY = "http.admin.secret_key"; public static final String HTTP_SERVER_API_NO_CHECK_TIME = "http.admin.no_check_time"; diff --git a/broker/src/main/java/io/moquette/imhandler/GetMediaUploadTokenHandler.java b/broker/src/main/java/io/moquette/imhandler/GetMediaUploadTokenHandler.java index c9ba2cf0..513b581d 100644 --- a/broker/src/main/java/io/moquette/imhandler/GetMediaUploadTokenHandler.java +++ b/broker/src/main/java/io/moquette/imhandler/GetMediaUploadTokenHandler.java @@ -80,9 +80,9 @@ public class GetMediaUploadTokenHandler extends IMHandler { resultBuilder.setPort(80); } else { token = UploadFileAction.getToken(type); - resultBuilder.setDomain("http://" + MediaServerConfig.SERVER_IP) + resultBuilder.setDomain("http://" + MediaServerConfig.SERVER_IP + ":" + MediaServerConfig.HTTP_SERVER_PORT) .setServer(MediaServerConfig.SERVER_IP); - resultBuilder.setPort(80); + resultBuilder.setPort(MediaServerConfig.HTTP_SERVER_PORT); } resultBuilder.setToken(token); diff --git a/broker/src/main/java/io/moquette/imhandler/RouteHandler.java b/broker/src/main/java/io/moquette/imhandler/RouteHandler.java index bbe370d3..e6723bea 100644 --- a/broker/src/main/java/io/moquette/imhandler/RouteHandler.java +++ b/broker/src/main/java/io/moquette/imhandler/RouteHandler.java @@ -18,6 +18,7 @@ import win.liyufan.im.IMTopic; import static io.moquette.BrokerConstants.HZ_Cluster_Node_External_IP; import static io.moquette.BrokerConstants.HZ_Cluster_Node_External_Long_Port; +import static io.moquette.BrokerConstants.HZ_Cluster_Node_External_Short_Port; @Handler(IMTopic.RouteTopic) public class RouteHandler extends IMHandler { @@ -26,6 +27,7 @@ public class RouteHandler extends IMHandler { Member member = mServer.getHazelcastInstance().getCluster().getLocalMember(); String serverIp = member.getStringAttribute(HZ_Cluster_Node_External_IP); String longPort = member.getStringAttribute(HZ_Cluster_Node_External_Long_Port); + String shortPort = member.getStringAttribute(HZ_Cluster_Node_External_Short_Port); ClientSession clientSession = m_sessionsStore.sessionForClient(clientID); boolean isSessionAlreadyStored = clientSession != null; @@ -35,7 +37,7 @@ public class RouteHandler extends IMHandler { m_sessionsStore.updateExistSession(fromUser, clientID, request, true); } - WFCMessage.RouteResponse response = WFCMessage.RouteResponse.newBuilder().setHost(serverIp).setLongPort(Integer.parseInt(longPort)).setShortPort(80).build(); + WFCMessage.RouteResponse response = WFCMessage.RouteResponse.newBuilder().setHost(serverIp).setLongPort(Integer.parseInt(longPort)).setShortPort(Integer.parseInt(shortPort)).build(); byte[] data = response.toByteArray(); ackPayload.ensureWritable(data.length).writeBytes(data); diff --git a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java index 13e778ce..189e8f7b 100755 --- a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java +++ b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java @@ -1833,11 +1833,12 @@ public class MemoryMessagesStore implements IMessagesStore { Member member = m_Server.getHazelcastInstance().getCluster().getLocalMember(); String serverIp = member.getStringAttribute(HZ_Cluster_Node_External_IP); String longPort = member.getStringAttribute(HZ_Cluster_Node_External_Long_Port); + String shortPort = member.getStringAttribute(HZ_Cluster_Node_External_Short_Port); if (!StringUtil.isNullOrEmpty(serverIp)) { serverIPs.add(serverIp); } ports.add(Integer.parseInt(longPort)); - ports.add(80); + ports.add(Integer.parseInt(shortPort)); } else { return ErrorCode.ERROR_CODE_TOKEN_ERROR; } diff --git a/broker/src/main/java/io/moquette/server/Server.java b/broker/src/main/java/io/moquette/server/Server.java index 790112e8..63f83e12 100755 --- a/broker/src/main/java/io/moquette/server/Server.java +++ b/broker/src/main/java/io/moquette/server/Server.java @@ -334,6 +334,8 @@ public class Server { MediaServerConfig.SERVER_IP = getServerIp(config); + MediaServerConfig.HTTP_SERVER_PORT = Integer.parseInt(config.getProperty(BrokerConstants.HTTP_SERVER_PORT)); + MediaServerConfig.FILE_STROAGE_ROOT = config.getProperty(BrokerConstants.FILE_STORAGE_ROOT, MediaServerConfig.FILE_STROAGE_ROOT); File file = new File(MediaServerConfig.FILE_STROAGE_ROOT); if (!file.exists()) { @@ -373,6 +375,7 @@ public class Server { String longPort = config.getProperty(BrokerConstants.PORT_PROPERTY_NAME); + String shortPort = config.getProperty(BrokerConstants.HTTP_SERVER_PORT); String nodeIdStr = config.getProperty(BrokerConstants.NODE_ID); ISet nodeIdSet = hazelcastInstance.getSet(BrokerConstants.NODE_IDS); int nodeId; @@ -390,6 +393,7 @@ public class Server { nodeIdSet.add(nodeId); hazelcastInstance.getCluster().getLocalMember().setStringAttribute(HZ_Cluster_Node_External_Long_Port, longPort); + hazelcastInstance.getCluster().getLocalMember().setStringAttribute(HZ_Cluster_Node_External_Short_Port, shortPort); hazelcastInstance.getCluster().getLocalMember().setIntAttribute(HZ_Cluster_Node_ID, nodeId); hazelcastInstance.getCluster().getLocalMember().setStringAttribute(HZ_Cluster_Node_External_IP, serverIp); Tokenor.setKey(config.getProperty(BrokerConstants.TOKEN_SECRET_KEY)); diff --git a/broker/src/main/java/io/moquette/server/config/MediaServerConfig.java b/broker/src/main/java/io/moquette/server/config/MediaServerConfig.java index 446e3150..fd32a60d 100755 --- a/broker/src/main/java/io/moquette/server/config/MediaServerConfig.java +++ b/broker/src/main/java/io/moquette/server/config/MediaServerConfig.java @@ -25,6 +25,7 @@ public class MediaServerConfig { public static String QINIU_BUCKET_FAVORITE_DOMAIN; public static String SERVER_IP = "localhost"; + public static int HTTP_SERVER_PORT = 8080; public static String FILE_STROAGE_ROOT = "fs"; public static boolean USER_QINIU = false; diff --git a/distribution/src/main/resources/wildfirechat.conf b/distribution/src/main/resources/wildfirechat.conf index 6caf0bce..2aef57e9 100755 --- a/distribution/src/main/resources/wildfirechat.conf +++ b/distribution/src/main/resources/wildfirechat.conf @@ -1,13 +1,17 @@ #********************************************************************* # Server configuration #********************************************************************* -#服务器的接入IP。给客户端提供是${server.ip}。客户端会从server.ip的80端口进行访问并获取到长链接端口,所有需要保证80/1883 TCP端口的畅通。 -#(如果您部署云服务器上或者具有独立公网出口的服务器上,请改为对应的公网IP;如果您部署在在内网环境下,在内网使用,这个地方改成内网地址) +#服务器的接入IP。给客户端提供是${server.ip}和${http_port}。 +#客户端会从${http_port}端口获取到长链接端口。这个地址一定要改成客户端可以访问到的IP地址 +# (如果您部署云服务器上或者具有独立公网出口的服务器上,请改为对应的公网IP;如果您部署在在内网环境下,在内网使用,这个地方改成内网地址) server.ip 0.0.0.0 ##原生客户端长链接端口 port 1883 +##客户端短链接端口 +http_port 80 + ##WEB客户端长链接端口 websocket_port 8083