您在这里有几个选择。
短/长轮询(使用 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 }
);
}
});
Run Code Online (Sandbox Code Playgroud)
对于客户端的短轮询和长轮询,您发送请求,等待返回响应,然后等待 3 秒并再次触发。
短/长轮询在服务器端的工作方式不同。短轮询只会立即返回响应 - 无论某些内容是否发生变化。长轮询,您保持连接打开,当有变化时,您返回数据。请注意不要保持过多的连接打开。
Socket.io(网络套接字)
我建议您在自己的 Web 服务器上使用 Node.js 之类的东西或 Firebase 之类的托管解决方案来实现 Websockets。
Firebase 的特点是,您可以从 PHP 向 Firebase 服务器上的 REST 端点发送发布请求。您的 JavaScript 可以连接到该端点并侦听更改并相应地更新 dom。它可能是最容易实现的。
我个人不会使用 PHP 进行套接字编程,但这是可以做到的。
| 归档时间: |
|
| 查看次数: |
1482 次 |
| 最近记录: |