亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何向連接到 Undertow websocket 服務器的所有客戶端廣播消息?

如何向連接到 Undertow websocket 服務器的所有客戶端廣播消息?

呼啦一陣風 2021-06-07 16:59:30
這是我當前的 Undertow websocket 服務器設置:    Undertow server = Undertow.builder()            .addHttpListener(8080, "localhost")            .setHandler(path()                    .addPrefixPath("/", websocket((exchange, channel) -> {                        channel.getReceiveSetter().set(new AbstractReceiveListener() {                            @Override                            protected void onFullTextMessage(WebSocketChannel channel, BufferedTextMessage message) {                                final String messageData = message.getData();                                for (WebSocketChannel session : channel.getPeerConnections()) {                                    WebSockets.sendText(messageData, session, null);                                }                            }                        });                        channel.resumeReceives();                    }))).build();這是從他們的演示文件之一復制的。我相信onFullTextMessage這里會向所有客戶端廣播它收到的任何消息。我希望能夠按需觸發這種行為。因此,不必接收消息并使用事件處理程序發送更多消息,我希望能夠任意執行server.send()并向所有連接的客戶端發送消息。我環顧四周,沒有發現任何似乎能夠實現這一目標的東西。我不喜歡WebSocketChannels手動跟蹤所有內容并發送給每個客戶端的想法。當然,我忽略了某個地方的方法?如果這不是不可能的事情,我將不勝感激!
查看完整描述

1 回答

?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

您可以通過獲取與此運河的所有連接并發送消息來向通道上的所有客戶端廣播消息:


channel.getPeerConnections().forEach(connection -> {

    WebSockets.sendText(messageData, connection, null);

});


查看完整回答
反對 回復 2021-06-17
  • 1 回答
  • 0 關注
  • 329 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號