gpt4 book ai didi

sockets - Web套接字-向所有客户端发送消息

转载 作者:行者123 更新时间:2023-12-03 12:05:13 27 4
gpt4 key购买 nike

我是Web套接字的新手,我已将它们应用于聊天,所以现在看起来像这样:

<script type='text/javascript'>
var connection = new WebSocket("ws://echo.websocket.org"); //"public" websocket server
connection.onopen = function () {
console.log('Connection: OK.');
};
connection.onerror = function (error) {
console.log(Error: ' + error);
};
connection.onmessage = function () {
$('#chatbox').load('/chatbox.php');
};
$(document).ready(function() {

$('#chatOK').click(function(event) {
//something
connection.send('Get new messages.');


});
});
</script>

它适用于一个客户端,当我输入消息时,它更新了聊天框,但仅更新了我的,但我想对所有人(=打开了聊天窗口的所有用户)进行更新。那么如何将WebSockets消息发送给所有客户端呢?

最佳答案

您无法使用websocket.org回显服务器执行此操作-这只会回显您将其发送回发件人的所有内容。

您需要一个服务器来处理向所有客户端的分发。使用“发布和订阅”消息传递模式最容易做到这一点:

所有聊天消息都会发布到一个共同的主题,例如“myChatRoom_1”。

所有连接的客户端都向服务器指示他们对发送到“myChatRoom_1”(即订阅)的消息感兴趣。

现在,当服务器收到有关“myChatRoom_1”的已发布事件时,它可以将其分发给所有订阅者。

看一看this demo可以看到实际效果。

它基于开源应用程序路由器Crossbar.io,它开箱即用地执行PubSub,而没有其他后端。因此,如果使用了此功能,则只需要对浏览器聊天客户端进行更改即可。
如果您想与您的PHP后端集成(例如,因为它会将聊天消息存储在某处),那么还有一个PHP library也可以连接到Crossbar.io。

全面披露:我为Tavendo工作,后者是Crossbar.io项目的维护者。

关于sockets - Web套接字-向所有客户端发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24844961/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com