gpt4 book ai didi

angularjs - 实时使用 AngularJs 和 Yii2

转载 作者:行者123 更新时间:2023-12-02 23:42:20 25 4
gpt4 key购买 nike

我正在开发一个 Yii2 REST API,使用 AngularJS 供前端使用。

我需要一种实现实时方法的方法,例如用于聊天或发出一些实时通知。

这可以吗,如何实现?我一直在阅读有关 Ratchet、Socket.io 和其他一些东西的内容,但我不知道如何使它们适合 REST,也不知道这是否是可行的方法。

如有任何建议,我们将不胜感激。

最佳答案

这里有几个选项。

短/长轮询(使用setTimeout)

app.controller("MyController", function($scope, $timeout, $http) {
$scope.messages = [];

$timeout(callAtTimeout, 3000);

function callAtTimeout() {
console.log("Timeout occurred");
$http.get('PATH TO RESOURCE TO GET NEW MESSAGES').then(
function(res) { // update $scope.messages etc... },
function(err) { // handle error }
);
}
});

对于客户端的短轮询和长轮询,您发送请求,等待返回响应,然后等待 3 秒并再次触发。

短/长轮询在服务器端的工作方式不同。短轮询只会立即返回响应 - 无论某些内容是否发生变化。长轮询,您保持连接打开,当有变化时,您返回数据。请注意不要保持过多的连接打开。

Socket.io(网络套接字)

我建议您在自己的 Web 服务器上使用 Node.js 等工具或 Firebase 等托管解决方案来实现 Websocket。

Firebase 的特点是,您可以从 PHP 向 Firebase 服务器上的 REST 端点发送发布请求。您的 JavaScript 可以连接到该端点并监听更改并相应地更新 dom。它可能是最容易实现的。

我个人不会使用 PHP 进行套接字编程,但这是可以做到的。

关于angularjs - 实时使用 AngularJs 和 Yii2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32595481/

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