Websockets in python and js
Websockets in python and js
我目前正在创建一个网站,我对Websockets完全感到困惑。
我在我的网站上显示的数据库中有一些数据。现在,每隔一段时间,数据库中就会有新的条目,这些条目应该在不重新加载的情况下显示在网站上,现在我认为这可以通过使用websocket来实现。
我使用web.py作为我的网站的框架,我使用AngularJS。
在我的app.py
中,我接收数据库条目并将它们作为JSON返回。
在js中,我想接收JSON消息并将其保存在$scope
中,然后使用AngularJS将其"打印"在网站上,我为其创建了一个客户端WebSocket,如下所示:
var app = angular.module('web');
app.factory('runservice', function() {
var service = {};
service.connect = function() {
if(service.ws) { return; }
var ws = new WebSocket('wss://localhost:8080');
ws.onopen = function() {
service.callback("Success");
};
ws.onerror = function(evt) {
service.callback("Error: " + evt.data);
}
ws.onmessage = function(message) {
service.callback(message.data);
};
service.ws = ws;
}
service.subscribe = function(callback) {
service.callback = callback;
}
return service;
});
app.controller('runController', function($scope, runservice) {
runservice.connect();
runservice.subscribe(function(message) {
var data = JSON.parse(message);
$scope.runs = data;
});
});
现在,我的app.py中需要一个服务器端套接字还是其他什么?如果是这样的话,有人能提供一个我如何在web.py中实现这一点的例子吗?
您肯定需要在服务器上有websocket代码,否则您的客户端无法保持与服务器的连接,反之亦然。
如果您希望使用实时websocket,那么这个包适用于您的web.py应用程序服务器https://github.com/songdi/webpy-socketio将非常有用,这将对您的angular客户端应用程序非常有用https://github.com/btford/angular-socket-io
另一种选择是简单地对服务器进行长轮询。AKA每隔大约10秒向您的应用程序发出异步请求,并且只检索最新的条目。
我希望这能有所帮助!
相关文章:
- Moment js and IOS
- Ember.js and Pagination
- Vue, Webpack, DC.js, and Finally Crossfilter
- three.js and depthFunc
- Fullpage.js and SlimScroll
- Typed.js and Fontawesome
- JS and Actionscript
- Ember.js and Twitter Bootstrap Popover
- cubism.js and Internet Explorer
- Underscore.js and noconflict
- DataTables, Ember.js and Views inside a <td>
- angular-seed web-script.js and cors
- Xpath with js and google chrome
- Node.js and SQLite3
- React.js and React Native
- Durandal JS and Google Plus Sign in Javascript API
- Velocity.js and calc() CSS function
- Cluster with Express.js and Kue.js
- Angular JS and Webservices
- Node.js and Express - 将JSON对象从SoundCloud API发送到前端使其成为字符串