gpt4 book ai didi

javascript - 我是否正确使用了 websocket?

转载 作者:行者123 更新时间:2023-12-01 03:58:01 25 4
gpt4 key购买 nike

背景:

  • 我正在使用 Pusher 的 API。
  • 我正在使用 PHP 服务器端。
  • 我已经通过composer安装了Pusher包服务器端。

我如何使用它

我正在构建一个由单个用户控制的幻灯片。如果我希望一个人为该页面上的所有人更改幻灯片,那么我会使用用户移动到的数字幻灯片进行 AJAX 调用。

$('#nextCard').click(function(){
if ($('#card-' + (cardId + 1)).length != 0) { // if there is a next card
$('#card-' + (cardId)).hide(); // hide current card
cardId++; // increment the card id
$('#card-' + (cardId)).show(); // and show the next card
location.hash = cardId;

/**
* make ajax call to push function
*/
$.ajax({
method: 'post',
url: '<?php echo base_url('learn/pusher'); ?>',
data: {card_id: cardId},
dataType: 'json',
async: false,
});
}
});

该号码通过 ajax 发送到服务器,并通过推送器进行传送。

然后,Pusher 将幻灯片编号实时发送给同一页面上的所有用户...实际上推送更改到不同用户的屏幕。

var channel = pusher.subscribe('notifications');
channel.bind('new-notification', function(data) {

// call something here

});

然后,推送数据时调用的函数会影响更改。

我的问题

我的印象是 Websockets 是 AJAX 和其他类似技术的替代/替代品......但在这里我发现自己依靠 AJAX 将我的 Websockets 数据从服务器端发送到推送器。

我认为 Websockets 比 AJAX 更有优势,因为它更快,但在这里我发现自己受到 AJAX 的瓶颈。

那么我在这里正确使用 websockets 吗?

最佳答案

使用 AJAX 向服务器发送请求,服务器进而触发 Pusher 事件,以便将其广播给订阅者,这是使用 Pusher 的惯用方式。底层的 WebSockets 技术是双向的(更多信息 here ),但 Pusher 的 pub/sub 模型是单向的。

您的用例的一种替代方法是使用 client events 。这允许您直接从客户端触发事件。这样做的额外考虑是您必须使用私有(private)或存在 channel 。

关于javascript - 我是否正确使用了 websocket?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42470851/

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