add example of websocket API use
This commit is contained in:
parent
2174f3e4be
commit
fe2f6ec6c4
@ -3,13 +3,20 @@
|
|||||||
// server-side socket behaviour
|
// server-side socket behaviour
|
||||||
var ios = null; // io is already taken in express
|
var ios = null; // io is already taken in express
|
||||||
var util = require('bitcore').util;
|
var util = require('bitcore').util;
|
||||||
|
var mdb = require('../../lib/MessageDb').default();
|
||||||
|
|
||||||
module.exports.init = function(io_ext) {
|
module.exports.init = function(io_ext) {
|
||||||
ios = io_ext;
|
ios = io_ext;
|
||||||
ios.sockets.on('connection', function(socket) {
|
ios.sockets.on('connection', function(socket) {
|
||||||
socket.on('subscribe', function(topic) {
|
socket.on('subscribe', function(topic) {
|
||||||
|
console.log('subscribe ' + topic);
|
||||||
socket.join(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) {
|
module.exports.broadcastMessage = function(from, to, ts, message) {
|
||||||
console.log('sending socket: %s, %s, %s, %s', from, to, ts, JSON.stringify(message));
|
|
||||||
if (ios) {
|
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) {
|
MessageDb.prototype.addMessage = function(m, from, to, cb) {
|
||||||
|
console.log('adding message');
|
||||||
var key = messageKey(from, to);
|
var key = messageKey(from, to);
|
||||||
var value = m;
|
var value = m;
|
||||||
this.db.put(key, value, cb);
|
this.db.put(key, value, cb);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user