WebSocket的sendMessage系列方法增加Stream userids参数
This commit is contained in:
@@ -231,6 +231,18 @@ public abstract class WebSocket<G extends Serializable, T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------
|
//----------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* 给指定userid的WebSocket节点发送 二进制消息/文本消息/JavaBean对象消息
|
||||||
|
*
|
||||||
|
* @param message 不可为空
|
||||||
|
* @param userids Stream
|
||||||
|
*
|
||||||
|
* @return 为0表示成功, 其他值表示异常
|
||||||
|
*/
|
||||||
|
public final CompletableFuture<Integer> sendMessage(Object message, Stream<G> userids) {
|
||||||
|
return sendMessage(message, true, userids);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 给指定userid的WebSocket节点发送 二进制消息/文本消息/JavaBean对象消息
|
* 给指定userid的WebSocket节点发送 二进制消息/文本消息/JavaBean对象消息
|
||||||
*
|
*
|
||||||
@@ -243,6 +255,19 @@ public abstract class WebSocket<G extends Serializable, T> {
|
|||||||
return sendMessage(message, true, userids);
|
return sendMessage(message, true, userids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 给指定userid的WebSocket节点发送 二进制消息/文本消息/JavaBean对象消息
|
||||||
|
*
|
||||||
|
* @param convert Convert
|
||||||
|
* @param message 不可为空
|
||||||
|
* @param userids Stream
|
||||||
|
*
|
||||||
|
* @return 为0表示成功, 其他值表示异常
|
||||||
|
*/
|
||||||
|
public final CompletableFuture<Integer> sendMessage(final Convert convert, Object message, Stream<G> userids) {
|
||||||
|
return sendMessage(convert, message, true, userids);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 给指定userid的WebSocket节点发送 二进制消息/文本消息/JavaBean对象消息
|
* 给指定userid的WebSocket节点发送 二进制消息/文本消息/JavaBean对象消息
|
||||||
*
|
*
|
||||||
@@ -256,6 +281,19 @@ public abstract class WebSocket<G extends Serializable, T> {
|
|||||||
return sendMessage(convert, message, true, userids);
|
return sendMessage(convert, message, true, userids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 给指定userid的WebSocket节点发送 二进制消息/文本消息/JavaBean对象消息
|
||||||
|
*
|
||||||
|
* @param message 不可为空
|
||||||
|
* @param last 是否最后一条
|
||||||
|
* @param userids Serializable[]
|
||||||
|
*
|
||||||
|
* @return 为0表示成功, 其他值表示异常
|
||||||
|
*/
|
||||||
|
public final CompletableFuture<Integer> sendMessage(Object message, boolean last, Stream<G> userids) {
|
||||||
|
return sendMessage((Convert) null, message, last, userids);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 给指定userid的WebSocket节点发送 二进制消息/文本消息/JavaBean对象消息
|
* 给指定userid的WebSocket节点发送 二进制消息/文本消息/JavaBean对象消息
|
||||||
*
|
*
|
||||||
@@ -269,6 +307,25 @@ public abstract class WebSocket<G extends Serializable, T> {
|
|||||||
return sendMessage((Convert) null, message, last, userids);
|
return sendMessage((Convert) null, message, last, userids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 给指定userid的WebSocket节点发送 二进制消息/文本消息/JavaBean对象消息
|
||||||
|
*
|
||||||
|
* @param convert Convert
|
||||||
|
* @param message 不可为空
|
||||||
|
* @param last 是否最后一条
|
||||||
|
* @param userids Stream
|
||||||
|
*
|
||||||
|
* @return 为0表示成功, 其他值表示异常
|
||||||
|
*/
|
||||||
|
public final CompletableFuture<Integer> sendMessage(final Convert convert, Object message, boolean last, final Stream<G> 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, message, last, ss);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 给指定userid的WebSocket节点发送 二进制消息/文本消息/JavaBean对象消息
|
* 给指定userid的WebSocket节点发送 二进制消息/文本消息/JavaBean对象消息
|
||||||
*
|
*
|
||||||
@@ -279,7 +336,7 @@ public abstract class WebSocket<G extends Serializable, T> {
|
|||||||
*
|
*
|
||||||
* @return 为0表示成功, 其他值表示异常
|
* @return 为0表示成功, 其他值表示异常
|
||||||
*/
|
*/
|
||||||
public final CompletableFuture<Integer> sendMessage(final Convert convert, Object message, boolean last, G... userids) {
|
public final CompletableFuture<Integer> sendMessage(final Convert convert, Object message, boolean last, Serializable... userids) {
|
||||||
if (_engine.node == null) return CompletableFuture.completedFuture(RETCODE_NODESERVICE_NULL);
|
if (_engine.node == null) return CompletableFuture.completedFuture(RETCODE_NODESERVICE_NULL);
|
||||||
if (message instanceof CompletableFuture) {
|
if (message instanceof CompletableFuture) {
|
||||||
return ((CompletableFuture) message).thenCompose((json) -> _engine.node.sendMessage(convert, json, last, userids));
|
return ((CompletableFuture) message).thenCompose((json) -> _engine.node.sendMessage(convert, json, last, userids));
|
||||||
|
|||||||
@@ -201,6 +201,16 @@ public class WebSocketEngine {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Comment("给指定用户组发送消息")
|
||||||
|
public CompletableFuture<Integer> sendMessage(final Object message, final boolean last, final Stream<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(message, last, ss);
|
||||||
|
}
|
||||||
|
|
||||||
@Comment("给指定用户组发送消息")
|
@Comment("给指定用户组发送消息")
|
||||||
public CompletableFuture<Integer> sendMessage(final Object message, final boolean last, final Serializable... userids) {
|
public CompletableFuture<Integer> sendMessage(final Object message, final boolean last, final Serializable... userids) {
|
||||||
if (message instanceof CompletableFuture) {
|
if (message instanceof CompletableFuture) {
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import java.net.*;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.*;
|
import java.util.concurrent.*;
|
||||||
import java.util.logging.*;
|
import java.util.logging.*;
|
||||||
|
import java.util.stream.Stream;
|
||||||
import javax.annotation.*;
|
import javax.annotation.*;
|
||||||
import org.redkale.boot.*;
|
import org.redkale.boot.*;
|
||||||
import org.redkale.convert.*;
|
import org.redkale.convert.*;
|
||||||
@@ -222,6 +223,19 @@ public abstract class WebSocketNode {
|
|||||||
return this.localEngine;
|
return this.localEngine;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 向指定用户发送消息,先发送本地连接,再发送远程连接 <br>
|
||||||
|
* 如果当前WebSocketNode是远程模式,此方法只发送远程连接
|
||||||
|
*
|
||||||
|
* @param message 消息内容
|
||||||
|
* @param userids Stream
|
||||||
|
*
|
||||||
|
* @return 为0表示成功, 其他值表示部分发送异常
|
||||||
|
*/
|
||||||
|
public final CompletableFuture<Integer> sendMessage(Object message, final Stream<Serializable> userids) {
|
||||||
|
return sendMessage((Convert) null, message, true, userids);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 向指定用户发送消息,先发送本地连接,再发送远程连接 <br>
|
* 向指定用户发送消息,先发送本地连接,再发送远程连接 <br>
|
||||||
* 如果当前WebSocketNode是远程模式,此方法只发送远程连接
|
* 如果当前WebSocketNode是远程模式,此方法只发送远程连接
|
||||||
@@ -235,6 +249,20 @@ public abstract class WebSocketNode {
|
|||||||
return sendMessage((Convert) null, message, true, userids);
|
return sendMessage((Convert) null, message, true, userids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 向指定用户发送消息,先发送本地连接,再发送远程连接 <br>
|
||||||
|
* 如果当前WebSocketNode是远程模式,此方法只发送远程连接
|
||||||
|
*
|
||||||
|
* @param convert Convert
|
||||||
|
* @param message 消息内容
|
||||||
|
* @param userids Stream
|
||||||
|
*
|
||||||
|
* @return 为0表示成功, 其他值表示部分发送异常
|
||||||
|
*/
|
||||||
|
public final CompletableFuture<Integer> sendMessage(final Convert convert, Object message, final Stream<Serializable> userids) {
|
||||||
|
return sendMessage(convert, message, true, userids);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 向指定用户发送消息,先发送本地连接,再发送远程连接 <br>
|
* 向指定用户发送消息,先发送本地连接,再发送远程连接 <br>
|
||||||
* 如果当前WebSocketNode是远程模式,此方法只发送远程连接
|
* 如果当前WebSocketNode是远程模式,此方法只发送远程连接
|
||||||
@@ -249,6 +277,20 @@ public abstract class WebSocketNode {
|
|||||||
return sendMessage(convert, message, true, userids);
|
return sendMessage(convert, message, true, userids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 向指定用户发送消息,先发送本地连接,再发送远程连接 <br>
|
||||||
|
* 如果当前WebSocketNode是远程模式,此方法只发送远程连接
|
||||||
|
*
|
||||||
|
* @param message 消息内容
|
||||||
|
* @param last 是否最后一条
|
||||||
|
* @param userids Stream
|
||||||
|
*
|
||||||
|
* @return 为0表示成功, 其他值表示部分发送异常
|
||||||
|
*/
|
||||||
|
public final CompletableFuture<Integer> sendMessage(final Object message, final boolean last, final Stream<Serializable> userids) {
|
||||||
|
return sendMessage((Convert) null, message, last, userids);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 向指定用户发送消息,先发送本地连接,再发送远程连接 <br>
|
* 向指定用户发送消息,先发送本地连接,再发送远程连接 <br>
|
||||||
* 如果当前WebSocketNode是远程模式,此方法只发送远程连接
|
* 如果当前WebSocketNode是远程模式,此方法只发送远程连接
|
||||||
@@ -263,6 +305,26 @@ public abstract class WebSocketNode {
|
|||||||
return sendMessage((Convert) null, message, last, userids);
|
return sendMessage((Convert) null, message, last, userids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 向指定用户发送消息,先发送本地连接,再发送远程连接 <br>
|
||||||
|
* 如果当前WebSocketNode是远程模式,此方法只发送远程连接
|
||||||
|
*
|
||||||
|
* @param convert Convert
|
||||||
|
* @param message0 消息内容
|
||||||
|
* @param last 是否最后一条
|
||||||
|
* @param userids Stream
|
||||||
|
*
|
||||||
|
* @return 为0表示成功, 其他值表示部分发送异常
|
||||||
|
*/
|
||||||
|
public final CompletableFuture<Integer> sendMessage(final Convert convert, final Object message0, final boolean last, final Stream<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);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 向指定用户发送消息,先发送本地连接,再发送远程连接 <br>
|
* 向指定用户发送消息,先发送本地连接,再发送远程连接 <br>
|
||||||
* 如果当前WebSocketNode是远程模式,此方法只发送远程连接
|
* 如果当前WebSocketNode是远程模式,此方法只发送远程连接
|
||||||
|
|||||||
Reference in New Issue
Block a user