add example of websocket API use
This commit is contained in:
parent
2174f3e4be
commit
fe2f6ec6c4
@ -3,13 +3,20 @@
|
||||
// server-side socket behaviour
|
||||
var ios = null; // io is already taken in express
|
||||
var util = require('bitcore').util;
|
||||
var mdb = require('../../lib/MessageDb').default();
|
||||
|
||||
module.exports.init = function(io_ext) {
|
||||
ios = io_ext;
|
||||
ios.sockets.on('connection', function(socket) {
|
||||
socket.on('subscribe', function(topic) {
|
||||
console.log('subscribe ' + topic);
|
||||
socket.join(topic);
|
||||
});
|
||||
socket.on('message', function(m) {
|
||||
mdb.addMessage(m.payload, m.from, m.to, function(err) {
|
||||
if (err) throw err; // TODO: handle
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
@ -54,9 +61,12 @@ module.exports.broadcastSyncInfo = function(historicSync) {
|
||||
};
|
||||
|
||||
module.exports.broadcastMessage = function(from, to, ts, message) {
|
||||
console.log('sending socket: %s, %s, %s, %s', from, to, ts, JSON.stringify(message));
|
||||
if (ios) {
|
||||
ios.sockets.in(to).emit(from + '-' + ts, message);
|
||||
console.log('sending message '+to);
|
||||
ios.sockets.in(to).emit(from, {
|
||||
payload: message,
|
||||
ts: ts
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
78
examples/messages.html
Normal file
78
examples/messages.html
Normal file
@ -0,0 +1,78 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Socket.IO chat</title>
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
body {
|
||||
font: 13px Helvetica, Arial;
|
||||
}
|
||||
form {
|
||||
background: #000;
|
||||
padding: 3px;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
}
|
||||
form input {
|
||||
border: 0;
|
||||
padding: 10px;
|
||||
width: 90%;
|
||||
margin-right: .5%;
|
||||
}
|
||||
form button {
|
||||
width: 9%;
|
||||
background: rgb(130, 224, 255);
|
||||
border: none;
|
||||
padding: 10px;
|
||||
}
|
||||
#messages {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#messages li {
|
||||
padding: 5px 10px;
|
||||
}
|
||||
#messages li:nth-child(odd) {
|
||||
background: #eee;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<ul id="messages"></ul>
|
||||
<form action="">
|
||||
<input id="m" autocomplete="off" />
|
||||
<button>Send</button>
|
||||
</form>
|
||||
<script src="http://localhost:3001/socket.io/socket.io.js"></script>
|
||||
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
|
||||
<script>
|
||||
var socket = io('http://localhost:3001');
|
||||
$('form').submit(function()
|
||||
{
|
||||
var payload = $('#m').val()
|
||||
socket.emit('message',
|
||||
{
|
||||
payload: payload,
|
||||
from: 'SIN_A',
|
||||
to: 'SIN_B'
|
||||
});
|
||||
$('#m').val('');
|
||||
return false;
|
||||
});
|
||||
socket.emit('subscribe', 'SIN_B');
|
||||
socket.on('SIN_A', function(msg)
|
||||
{
|
||||
$('#messages').append($('<li>').text(msg.ts+':'+JSON.stringify(msg.payload)));
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@ -59,6 +59,7 @@ var messageKey = function(from, to, ts) {
|
||||
};
|
||||
|
||||
MessageDb.prototype.addMessage = function(m, from, to, cb) {
|
||||
console.log('adding message');
|
||||
var key = messageKey(from, to);
|
||||
var value = m;
|
||||
this.db.put(key, value, cb);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user