WebSocketNode

This commit is contained in:
redkale
2024-10-10 01:53:11 +08:00
parent 35754cb8f5
commit 72d9427426
4 changed files with 23 additions and 52 deletions

View File

@@ -716,7 +716,7 @@ public abstract class ProtobufCoders {
}
}
// 只识别类型: Integer/Long/String/BigInteger
// 只识别类型: Integer/Long/String/BigInteger 用于WebSocketNode中userid类型
public static class ProtobufSerializableSimpledCoder
extends SimpledCoder<ProtobufReader, ProtobufWriter, Serializable>
implements ProtobufEncodeable<ProtobufWriter, Serializable> {

View File

@@ -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<Integer> sendMessage(
Object message, final Stream<? extends Serializable> useridOrAddrs) {
return sendMessage((Convert) null, message, true, useridOrAddrs);
public final CompletableFuture<Integer> 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<Integer> sendMessage(Object message, final Serializable... useridOrAddrs) {
return sendMessage((Convert) null, message, true, useridOrAddrs);
public final CompletableFuture<Integer> 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<Integer> sendMessage(
final Convert convert, Object message, final Stream<? extends Serializable> 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<Integer> 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<Integer> sendMessage(
Object message, boolean last, Stream<? extends Serializable> 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<Integer> sendMessage(
final Object message, final boolean last, final Serializable... useridOrAddrs) {
return sendMessage((Convert) null, message, last, useridOrAddrs);
}
/**
* 向指定用户发送消息,先发送本地连接,再发送远程连接 <br>
* 如果当前WebSocketNode是远程模式此方法只发送远程连接
*
* @param convert Convert
* @param message0 消息内容
* @param last 是否最后一条
* @param userids Stream
* @return 为0表示成功 其他值表示部分发送异常
*/
@Local
public final CompletableFuture<Integer> sendMessage(
Convert convert, Object message0, boolean last, Stream<? extends Serializable> 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<Integer> 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);
}

View File

@@ -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();

View File

@@ -47,7 +47,7 @@ public class UserTest {
}
public static class InnerBean {
@ConvertColumn(index = 1)
public Serializable id;