diff --git a/src/main/java/org/redkale/convert/pb/ProtobufCoders.java b/src/main/java/org/redkale/convert/pb/ProtobufCoders.java index d10281afc..cf31fc3ab 100644 --- a/src/main/java/org/redkale/convert/pb/ProtobufCoders.java +++ b/src/main/java/org/redkale/convert/pb/ProtobufCoders.java @@ -716,7 +716,7 @@ public abstract class ProtobufCoders { } } - // 只识别类型: Integer/Long/String/BigInteger + // 只识别类型: Integer/Long/String/BigInteger, 用于WebSocketNode中userid类型 public static class ProtobufSerializableSimpledCoder extends SimpledCoder implements ProtobufEncodeable { diff --git a/src/main/java/org/redkale/net/http/WebSocketNode.java b/src/main/java/org/redkale/net/http/WebSocketNode.java index 241f6f0f7..4555eb01c 100644 --- a/src/main/java/org/redkale/net/http/WebSocketNode.java +++ b/src/main/java/org/redkale/net/http/WebSocketNode.java @@ -545,13 +545,12 @@ public abstract class WebSocketNode implements Service { * 如果当前WebSocketNode是远程模式,此方法只发送远程连接 * * @param message 消息内容 - * @param useridOrAddrs Stream + * @param userids Serializable[] * @return 为0表示成功, 其他值表示部分发送异常 */ @Local - public final CompletableFuture sendMessage( - Object message, final Stream useridOrAddrs) { - return sendMessage((Convert) null, message, true, useridOrAddrs); + public final CompletableFuture sendMessage(Object message, final Serializable... userids) { + return sendMessage((Convert) null, message, true, userids); } /** @@ -559,12 +558,12 @@ public abstract class WebSocketNode implements Service { * 如果当前WebSocketNode是远程模式,此方法只发送远程连接 * * @param message 消息内容 - * @param useridOrAddrs Serializable[] + * @param useraddrs WebSocketUserAddress[] * @return 为0表示成功, 其他值表示部分发送异常 */ @Local - public final CompletableFuture sendMessage(Object message, final Serializable... useridOrAddrs) { - return sendMessage((Convert) null, message, true, useridOrAddrs); + public final CompletableFuture sendMessage(Object message, final WebSocketUserAddress... useraddrs) { + return sendMessage((Convert) null, message, true, useraddrs); } /** @@ -573,13 +572,13 @@ public abstract class WebSocketNode implements Service { * * @param convert Convert * @param message 消息内容 - * @param useridOrAddrs Stream + * @param userids Serializable[] * @return 为0表示成功, 其他值表示部分发送异常 */ @Local public final CompletableFuture sendMessage( - final Convert convert, Object message, final Stream useridOrAddrs) { - return sendMessage(convert, message, true, useridOrAddrs); + final Convert convert, Object message, final Serializable... userids) { + return sendMessage(convert, message, true, userids); } /** @@ -588,13 +587,13 @@ public abstract class WebSocketNode implements Service { * * @param convert Convert * @param message 消息内容 - * @param useridOrAddrs Serializable[] + * @param useraddrs WebSocketUserAddress[] * @return 为0表示成功, 其他值表示部分发送异常 */ @Local public final CompletableFuture sendMessage( - final Convert convert, Object message, final Serializable... useridOrAddrs) { - return sendMessage(convert, message, true, useridOrAddrs); + final Convert convert, Object message, final WebSocketUserAddress... useraddrs) { + return sendMessage(convert, message, true, useraddrs); } /** @@ -603,13 +602,13 @@ public abstract class WebSocketNode implements Service { * * @param message 消息内容 * @param last 是否最后一条 - * @param useridOrAddrs Stream + * @param userids Serializable[] * @return 为0表示成功, 其他值表示部分发送异常 */ @Local public final CompletableFuture sendMessage( - Object message, boolean last, Stream useridOrAddrs) { - return sendMessage((Convert) null, message, last, useridOrAddrs); + final Object message, final boolean last, final Serializable... userids) { + return sendMessage((Convert) null, message, last, userids); } /** @@ -618,34 +617,13 @@ public abstract class WebSocketNode implements Service { * * @param message 消息内容 * @param last 是否最后一条 - * @param useridOrAddrs Serializable[] + * @param useraddrs WebSocketUserAddress[] * @return 为0表示成功, 其他值表示部分发送异常 */ @Local public final CompletableFuture sendMessage( - final Object message, final boolean last, final Serializable... useridOrAddrs) { - return sendMessage((Convert) null, message, last, useridOrAddrs); - } - - /** - * 向指定用户发送消息,先发送本地连接,再发送远程连接
- * 如果当前WebSocketNode是远程模式,此方法只发送远程连接 - * - * @param convert Convert - * @param message0 消息内容 - * @param last 是否最后一条 - * @param userids Stream - * @return 为0表示成功, 其他值表示部分发送异常 - */ - @Local - public final CompletableFuture sendMessage( - Convert convert, Object message0, boolean last, Stream userids) { - Object[] array = userids.toArray(); - Serializable[] ss = new Serializable[array.length]; - for (int i = 0; i < array.length; i++) { - ss[i] = (Serializable) array[i]; - } - return sendMessage(convert, message0, last, ss); + final Object message, final boolean last, final WebSocketUserAddress... useraddrs) { + return sendMessage((Convert) null, message, last, useraddrs); } /** @@ -664,13 +642,6 @@ public abstract class WebSocketNode implements Service { if (Utility.isEmpty(userids)) { return CompletableFuture.completedFuture(RETCODE_GROUP_EMPTY); } - if (userids[0] instanceof WebSocketUserAddress) { - WebSocketUserAddress[] useraddrs = new WebSocketUserAddress[userids.length]; - for (int i = 0; i < useraddrs.length; i++) { - useraddrs[i] = (WebSocketUserAddress) userids[i]; - } - return sendMessage(convert, message0, last, useraddrs); - } if (message0 instanceof CompletableFuture) { return ((CompletableFuture) message0).thenApply(msg -> sendMessage(convert, msg, last, userids)); } @@ -745,7 +716,7 @@ public abstract class WebSocketNode implements Service { */ @Local public CompletableFuture sendMessage( - Convert convert, Object message0, boolean last, WebSocketUserAddress... useraddrs) { + Convert convert, final Object message0, final boolean last, final WebSocketUserAddress... useraddrs) { if (Utility.isEmpty(useraddrs)) { return CompletableFuture.completedFuture(RETCODE_GROUP_EMPTY); } diff --git a/src/main/java/org/redkale/net/http/WebSocketUserAddress.java b/src/main/java/org/redkale/net/http/WebSocketUserAddress.java index cd6ebeb6d..8add73345 100644 --- a/src/main/java/org/redkale/net/http/WebSocketUserAddress.java +++ b/src/main/java/org/redkale/net/http/WebSocketUserAddress.java @@ -12,11 +12,11 @@ import org.redkale.convert.ConvertColumn; import org.redkale.convert.json.JsonConvert; /** - * userid 与 sncpaddress组合对象 + * userid 与 sncpaddress组合对象, 不能实现Serializable * * @author zhangjx */ -public interface WebSocketUserAddress extends Serializable { +public interface WebSocketUserAddress { Serializable userid(); diff --git a/src/test/java/org/redkale/test/convert/pb/UserTest.java b/src/test/java/org/redkale/test/convert/pb/UserTest.java index 0e7504751..877fb1643 100644 --- a/src/test/java/org/redkale/test/convert/pb/UserTest.java +++ b/src/test/java/org/redkale/test/convert/pb/UserTest.java @@ -47,7 +47,7 @@ public class UserTest { } public static class InnerBean { - + @ConvertColumn(index = 1) public Serializable id;