Skip to content

Commit caa5428

Browse files
committed
add koa example
1 parent c7f9a5f commit caa5428

File tree

3 files changed

+108
-0
lines changed

3 files changed

+108
-0
lines changed

examples/koa/index.html

+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
<!doctype html>
2+
<html><head>
3+
<script src="//cdn.jsdelivr.net/jquery/2.1.4/jquery.min.js"></script>
4+
<script src="//cdn.jsdelivr.net/sockjs/0.3.4/sockjs.min.js"></script>
5+
<style>
6+
.box {
7+
width: 300px;
8+
float: left;
9+
margin: 0 20px 0 20px;
10+
}
11+
.box div, .box input {
12+
border: 1px solid;
13+
-moz-border-radius: 4px;
14+
border-radius: 4px;
15+
width: 100%;
16+
padding: 0px;
17+
margin: 5px;
18+
}
19+
.box div {
20+
border-color: grey;
21+
height: 300px;
22+
overflow: auto;
23+
}
24+
.box input {
25+
height: 30px;
26+
}
27+
h1 {
28+
margin-left: 30px;
29+
}
30+
body {
31+
background-color: #F0F0F0;
32+
font-family: "Arial";
33+
}
34+
</style>
35+
</head><body lang="en">
36+
<h1>SockJS Express example</h1>
37+
38+
<div id="first" class="box">
39+
<div></div>
40+
<form><input autocomplete="off" value="Type here..."></input></form>
41+
</div>
42+
43+
<script>
44+
var sockjs_url = '/echo';
45+
var sockjs = new SockJS(sockjs_url);
46+
$('#first input').focus();
47+
48+
var div = $('#first div');
49+
var inp = $('#first input');
50+
var form = $('#first form');
51+
52+
var print = function(m, p) {
53+
p = (p === undefined) ? '' : JSON.stringify(p);
54+
div.append($("<code>").text(m + ' ' + p));
55+
div.append($("<br>"));
56+
div.scrollTop(div.scrollTop()+10000);
57+
};
58+
59+
sockjs.onopen = function() {print('[*] open', sockjs.protocol);};
60+
sockjs.onmessage = function(e) {print('[.] message', e.data);};
61+
sockjs.onclose = function() {print('[*] close');};
62+
63+
form.submit(function() {
64+
print('[ ] sending', inp.val());
65+
sockjs.send(inp.val());
66+
inp.val('');
67+
return false;
68+
});
69+
70+
</script>
71+
</body></html>

examples/koa/package.json

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"name": "sockjs-koa",
3+
"version": "0.0.0-unreleasable",
4+
"dependencies": {
5+
"koa": "^0.21.0",
6+
"sockjs": "*"
7+
}
8+
}

examples/koa/server.js

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
var koa = require('koa');
2+
var sockjs = require('sockjs');
3+
var http = require('http');
4+
var fs = require('fs');
5+
var path = require('path');
6+
7+
// 1. Echo sockjs server
8+
var sockjs_opts = {sockjs_url: "http://cdn.jsdelivr.net/sockjs/0.3.4/sockjs.min.js"};
9+
var sockjs_echo = sockjs.createServer(sockjs_opts);
10+
sockjs_echo.on('connection', function(conn) {
11+
conn.on('data', function(message) {
12+
conn.write(message);
13+
});
14+
});
15+
16+
// 2. koa server
17+
var app = koa();
18+
19+
app.use(function *() {
20+
var filePath = __dirname + '/index.html';
21+
this.type = path.extname(filePath);
22+
this.body = fs.createReadStream(filePath);
23+
});
24+
25+
var server = http.createServer(app.callback());
26+
sockjs_echo.installHandlers(server, {prefix:'/echo'});
27+
28+
server.listen(9999, '0.0.0.0');
29+
console.log(' [*] Listening on 0.0.0.0:9999' );

0 commit comments

Comments
 (0)