diff --git a/src/main/java/com/genersoft/iot/vmp/service/bean/WvpRedisMsg.java b/src/main/java/com/genersoft/iot/vmp/service/bean/WvpRedisMsg.java
index 12d79cb23..74890be7e 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/bean/WvpRedisMsg.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/bean/WvpRedisMsg.java
@@ -29,12 +29,12 @@ public class WvpRedisMsg {
      * 消息的ID
      */
     private String serial;
-    private Object content;
+    private String content;
 
     private final static String requestTag = "req";
     private final static String responseTag = "res";
 
-    public static WvpRedisMsg getRequestInstance(String fromId, String toId, String cmd, String serial, Object content) {
+    public static WvpRedisMsg getRequestInstance(String fromId, String toId, String cmd, String serial, String content) {
         WvpRedisMsg wvpRedisMsg = new WvpRedisMsg();
         wvpRedisMsg.setType(requestTag);
         wvpRedisMsg.setFromId(fromId);
@@ -51,7 +51,7 @@ public class WvpRedisMsg {
         return wvpRedisMsg;
     }
 
-    public static WvpRedisMsg getResponseInstance(String fromId, String toId, String cmd, String serial, Object content) {
+    public static WvpRedisMsg getResponseInstance(String fromId, String toId, String cmd, String serial, String content) {
         WvpRedisMsg wvpRedisMsg = new WvpRedisMsg();
         wvpRedisMsg.setType(responseTag);
         wvpRedisMsg.setFromId(fromId);
@@ -106,11 +106,11 @@ public class WvpRedisMsg {
         this.cmd = cmd;
     }
 
-    public Object getContent() {
+    public String getContent() {
         return content;
     }
 
-    public void setContent(Object content) {
+    public void setContent(String content) {
         this.content = content;
     }
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisGbPlayMsgListener.java b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisGbPlayMsgListener.java
index 2b0f366bd..319661315 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisGbPlayMsgListener.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisGbPlayMsgListener.java
@@ -113,8 +113,8 @@ public class RedisGbPlayMsgListener implements MessageListener {
                 while (!taskQueue.isEmpty()) {
                     Message msg = taskQueue.poll();
                     try {
-                        JSONObject msgJSON = JSON.parseObject(msg.getBody(), JSONObject.class);
-                        WvpRedisMsg wvpRedisMsg = JSON.to(WvpRedisMsg.class, msgJSON);
+                        WvpRedisMsg wvpRedisMsg = JSON.parseObject(msg.getBody(), WvpRedisMsg.class);
+                        logger.info("[收到REDIS通知] 消息: {}", JSON.toJSONString(wvpRedisMsg));
                         if (!userSetting.getServerId().equals(wvpRedisMsg.getToId())) {
                             continue;
                         }
@@ -123,7 +123,7 @@ public class RedisGbPlayMsgListener implements MessageListener {
 
                             switch (wvpRedisMsg.getCmd()){
                                 case WvpRedisMsgCmd.GET_SEND_ITEM:
-                                    RequestSendItemMsg content = JSON.to(RequestSendItemMsg.class, wvpRedisMsg.getContent());
+                                    RequestSendItemMsg content = JSON.parseObject(wvpRedisMsg.getContent(), RequestSendItemMsg.class);
                                     requestSendItemMsgHand(content, wvpRedisMsg.getFromId(), wvpRedisMsg.getSerial());
                                     break;
                                 case WvpRedisMsgCmd.REQUEST_PUSH_STREAM:
@@ -242,7 +242,7 @@ public class RedisGbPlayMsgListener implements MessageListener {
         result.setData(content);
 
         WvpRedisMsg response = WvpRedisMsg.getResponseInstance(userSetting.getServerId(), toId,
-                WvpRedisMsgCmd.REQUEST_PUSH_STREAM, serial, result);
+                WvpRedisMsgCmd.REQUEST_PUSH_STREAM, serial, JSON.toJSONString(result));
         JSONObject jsonObject = (JSONObject)JSON.toJSON(response);
         redisTemplate.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
     }
@@ -260,7 +260,7 @@ public class RedisGbPlayMsgListener implements MessageListener {
             result.setMsg("流媒体不存在");
 
             WvpRedisMsg response = WvpRedisMsg.getResponseInstance(userSetting.getServerId(), toId,
-                    WvpRedisMsgCmd.GET_SEND_ITEM, serial, result);
+                    WvpRedisMsgCmd.GET_SEND_ITEM, serial, JSON.toJSONString(result));
 
             JSONObject jsonObject = (JSONObject)JSON.toJSON(response);
             redisTemplate.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
@@ -283,7 +283,7 @@ public class RedisGbPlayMsgListener implements MessageListener {
                 WVPResult<SendRtpItem> result = new WVPResult<>();
                 result.setCode(ERROR_CODE_TIMEOUT);
                 WvpRedisMsg response = WvpRedisMsg.getResponseInstance(
-                        userSetting.getServerId(), toId, WvpRedisMsgCmd.GET_SEND_ITEM, serial, result
+                        userSetting.getServerId(), toId, WvpRedisMsgCmd.GET_SEND_ITEM, serial, JSON.toJSONString(result)
                 );
                 JSONObject jsonObject = (JSONObject)JSON.toJSON(response);
                 redisTemplate.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
@@ -324,7 +324,7 @@ public class RedisGbPlayMsgListener implements MessageListener {
         result.setData(responseSendItemMsg);
 
         WvpRedisMsg response = WvpRedisMsg.getResponseInstance(
-                userSetting.getServerId(), toId, WvpRedisMsgCmd.GET_SEND_ITEM, serial, result
+                userSetting.getServerId(), toId, WvpRedisMsgCmd.GET_SEND_ITEM, serial, JSON.toJSONString(result)
         );
         JSONObject jsonObject = (JSONObject)JSON.toJSON(response);
         redisTemplate.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
@@ -350,7 +350,7 @@ public class RedisGbPlayMsgListener implements MessageListener {
         requestSendItemMsg.setServerId(serverId);
         String key = UUID.randomUUID().toString();
         WvpRedisMsg redisMsg = WvpRedisMsg.getRequestInstance(userSetting.getServerId(), serverId, WvpRedisMsgCmd.GET_SEND_ITEM,
-                key, requestSendItemMsg);
+                key, JSON.toJSONString(requestSendItemMsg));
 
         JSONObject jsonObject = (JSONObject)JSON.toJSON(redisMsg);
         logger.info("[请求推流SendItem] {}: {}", serverId, jsonObject);
@@ -375,7 +375,7 @@ public class RedisGbPlayMsgListener implements MessageListener {
     public void sendMsgForStartSendRtpStream(String serverId, RequestPushStreamMsg param, PlayMsgCallbackForStartSendRtpStream callback) {
         String key = UUID.randomUUID().toString();
         WvpRedisMsg redisMsg = WvpRedisMsg.getRequestInstance(userSetting.getServerId(), serverId,
-                WvpRedisMsgCmd.REQUEST_PUSH_STREAM, key, param);
+                WvpRedisMsgCmd.REQUEST_PUSH_STREAM, key, JSON.toJSONString(param));
 
         JSONObject jsonObject = (JSONObject)JSON.toJSON(redisMsg);
         logger.info("[REDIS 请求其他平台推流] {}: {}", serverId, jsonObject);
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamPushMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamPushMapper.java
index a5a076aae..983bbfe6e 100755
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamPushMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamPushMapper.java
@@ -14,9 +14,9 @@ import java.util.Map;
 public interface StreamPushMapper {
 
     @Insert("INSERT INTO wvp_stream_push (name, app, stream, common_gb_channel_id, gb_id, longitude, latitude, " +
-            "push_time, media_server_id, update_time, create_time, push_ing, self, status) VALUES" +
+            "push_time, media_server_id, server_id, update_time, create_time, push_ing, self, status) VALUES" +
             "(#{name}, #{app}, #{stream}, #{commonGbChannelId}, #{gbId},#{longitude},#{latitude}, " +
-            "#{pushTime}, #{mediaServerId} , #{updateTime} , #{createTime}, #{pushIng}, #{self}, #{status} )")
+            "#{pushTime}, #{mediaServerId} , #{serverId}, #{updateTime} , #{createTime}, #{pushIng}, #{self}, #{status} )")
     int add(StreamPush streamPushItem);
 
 
@@ -25,6 +25,7 @@ public interface StreamPushMapper {
             "SET update_time=#{updateTime}" +
             "<if test=\"name != null\">, name=#{name}</if>" +
             "<if test=\"mediaServerId != null\">, media_server_id=#{mediaServerId}</if>" +
+            "<if test=\"serverId != null\">, server_id=#{serverId}</if>" +
             "<if test=\"commonGbChannelId != null\">, common_gb_channel_id=#{commonGbChannelId}</if>" +
             "<if test=\"gbId != null\">, gb_id=#{gbId}</if>" +
             "<if test=\"longitude != null\">, longitude=#{longitude}</if>" +
@@ -85,10 +86,10 @@ public interface StreamPushMapper {
 
     @Insert("<script>" +
             "Insert INTO wvp_stream_push (name, app, stream, common_gb_channel_id, gb_id, longitude, " +
-            "latitude, create_time, media_server_id, status, push_ing) " +
+            "latitude, create_time, media_server_id, server_id, status, push_ing) " +
             "VALUES <foreach collection='streamPushItems' item='item' index='index' separator=','>" +
             "(#{item.name}, #{item.app}, #{item.stream}, #{item.commonGbChannelId}, #{item.gbId},#{item.longitude}, " +
-            "#{item.latitude}, #{item.createTime}, #{item.mediaServerId}, #{item.status}, #{item.pushIng} )" +
+            "#{item.latitude}, #{item.createTime}, #{item.mediaServerId}, #{item.serverId}, #{item.status}, #{item.pushIng} )" +
             " </foreach>" +
             "</script>")
     @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
diff --git a/数据库/2.6.9/初始化-mysql-2.6.9.sql b/数据库/2.6.9/初始化-mysql-2.6.9.sql
index 9dab2a45b..8eb8d7164 100644
--- a/数据库/2.6.9/初始化-mysql-2.6.9.sql
+++ b/数据库/2.6.9/初始化-mysql-2.6.9.sql
@@ -261,6 +261,7 @@ create table wvp_stream_push (
                                  create_time character varying(50),
                                  alive_second integer,
                                  media_server_id character varying(50),
+                                 server_id character varying(50),
                                  push_time character varying(50),
                                  status bool default false,
                                  update_time character varying(50),
diff --git a/数据库/2.6.9/初始化-postgresql-kingbase-2.6.9.sql b/数据库/2.6.9/初始化-postgresql-kingbase-2.6.9.sql
index ed239c38c..b48f64681 100644
--- a/数据库/2.6.9/初始化-postgresql-kingbase-2.6.9.sql
+++ b/数据库/2.6.9/初始化-postgresql-kingbase-2.6.9.sql
@@ -261,6 +261,7 @@ create table wvp_stream_push (
                                  create_time character varying(50),
                                  alive_second integer,
                                  media_server_id character varying(50),
+                                 server_id character varying(50),
                                  push_time character varying(50),
                                  status bool default false,
                                  update_time character varying(50),
diff --git a/数据库/2.6.9/更新-mysql-2.6.9.sql b/数据库/2.6.9/更新-mysql-2.6.9.sql
index 1e4f439da..735e76d4b 100644
--- a/数据库/2.6.9/更新-mysql-2.6.9.sql
+++ b/数据库/2.6.9/更新-mysql-2.6.9.sql
@@ -497,4 +497,7 @@ alter table wvp_media_server
 alter table wvp_media_server
     add record_day integer default 7;
 
+alter table wvp_stream_push
+    add server_id character varying(50);
+
 
diff --git a/数据库/2.6.9/更新-postgresql-kingbase-2.6.9.sql b/数据库/2.6.9/更新-postgresql-kingbase-2.6.9.sql
index 711f5b6fb..bbee04ede 100644
--- a/数据库/2.6.9/更新-postgresql-kingbase-2.6.9.sql
+++ b/数据库/2.6.9/更新-postgresql-kingbase-2.6.9.sql
@@ -498,5 +498,8 @@ alter table wvp_media_server
 alter table wvp_media_server
     add record_day integer default 7;
 
+alter table wvp_stream_push
+    add server_id character varying(50);
+
 
 
diff --git a/数据库/初始化-mysql.sql b/数据库/初始化-mysql.sql
index 9dab2a45b..8eb8d7164 100644
--- a/数据库/初始化-mysql.sql
+++ b/数据库/初始化-mysql.sql
@@ -261,6 +261,7 @@ create table wvp_stream_push (
                                  create_time character varying(50),
                                  alive_second integer,
                                  media_server_id character varying(50),
+                                 server_id character varying(50),
                                  push_time character varying(50),
                                  status bool default false,
                                  update_time character varying(50),
diff --git a/数据库/初始化-postgresql-kingbase.sql b/数据库/初始化-postgresql-kingbase.sql
index a2fc5ead1..2acd4e184 100644
--- a/数据库/初始化-postgresql-kingbase.sql
+++ b/数据库/初始化-postgresql-kingbase.sql
@@ -229,6 +229,7 @@ create table wvp_stream_push (
                                  create_time character varying(50),
                                  alive_second integer,
                                  media_server_id character varying(50),
+                                 server_id character varying(50),
                                  push_time character varying(50),
                                  status bool default false,
                                  update_time character varying(50),