Skip to content
This repository was archived by the owner on Jul 26, 2024. It is now read-only.

Commit a3eb6fc

Browse files
author
Dan Schaub
committed
first commit
0 parents  commit a3eb6fc

File tree

6 files changed

+191
-0
lines changed

6 files changed

+191
-0
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*.py[co]
2+
env

autobahn.min.js

Lines changed: 91 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

jquery.js

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

server.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import sys
2+
3+
from twisted.internet import reactor
4+
from twisted.python import log
5+
from twisted.web.server import Site
6+
from twisted.web.static import File
7+
8+
from autobahn.websocket import listenWS
9+
from autobahn.wamp import WampServerFactory, WampServerProtocol
10+
11+
class PubSubServer(WampServerProtocol):
12+
def onSessionOpen(self):
13+
self.registerForPubSub('github')
14+
15+
if __name__ == '__main__':
16+
log.startLogging(sys.stdout)
17+
debug = len(sys.argv) > 1 and sys.argv[1] == 'debug'
18+
19+
factory = WampServerFactory("ws://localhost:9000", debugWamp = debug)
20+
factory.protocol = PubSubServer
21+
factory.setProtocolOptions(allowHixie76 = True)
22+
listenWS(factory)
23+
24+
webdir = File(".")
25+
web = Site(webdir)
26+
reactor.listenTCP(5000, web)
27+
28+
reactor.run()

test.html

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
<!doctype html>
2+
<html>
3+
<head>
4+
<title>Dev Feed</title>
5+
<script src="jquery.js"></script>
6+
<script src="underscore.js"></script>
7+
<script>
8+
(function() {
9+
var sock = null;
10+
var wsuri = "ws://localhost:9000";
11+
12+
window.onload = function() {
13+
sock = new WebSocket(wsuri);
14+
15+
sock.onopen = function() {
16+
console.log("connected to " + wsuri);
17+
};
18+
19+
sock.onclose = function(e) {
20+
console.log("connection closed (" + e.code + ")");
21+
};
22+
23+
sock.onmessage = function(e) {
24+
var data = $.parseJSON(e.data),
25+
$el = createRow(data.type, data.data);
26+
$('#feed').prepend($el);
27+
};
28+
};
29+
30+
function createRow(type, data) {
31+
var tpl = $('#' + type).html(),
32+
rendered = _.template(tpl, data);
33+
34+
return $('<div class="row"></div>').html(rendered);
35+
}
36+
})();
37+
</script>
38+
</head>
39+
<body>
40+
<div id="feed">
41+
42+
</div>
43+
44+
<!-- various templates -->
45+
<script id="github" type="text/template">
46+
<%= username %> commited something.
47+
</script>
48+
<script id="trello" type="text/template">
49+
50+
</script>
51+
<script id="jenkins" type="text/template">
52+
53+
</script>
54+
<script id="jira" type="text/template">
55+
56+
</script>
57+
</body>
58+
</html>

underscore.js

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)