Skip to content

Commit

Permalink
send admin broadcast
Browse files Browse the repository at this point in the history
  • Loading branch information
x3388638 committed Apr 16, 2017
1 parent c79e0a6 commit bf605e8
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 9 deletions.
28 changes: 20 additions & 8 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,19 +22,29 @@ app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(express.static('web'));

io.on('connection', function(socket){
io.on('connection', function (socket) {
let connectedIP = socket.request.connection.remoteAddress.replace('::ffff:', '');
console.log(`===== A ws client connected, IP: ${connectedIP} =====`);
if(!member.isExist(connectedIP) && connectedIP != '127.0.0.1') {
// TODO: check all interface
if(connectedIP != '127.0.0.1') {
console.log(`Reject ws from ${connectedIP}.`);
socket.disconnect();
}

/**
* ws event receiver
*/

socket.on('disconnect', function(){
socket.on('broadcast', function (msg) {
console.log(`===== broadcast received ${msg} =====`);
var msg = htmlEntity.encode(msg);
msg = _urlify(msg);
var name = 'Admin';
var time = moment().format('HH:mm');
// send message to all members
_storeMsg(msg, '224.0.0.1', name, time, true);
_castMsg(msg, '224.0.0.1', name, time, true);
});
socket.on('disconnect', function () {
console.log('user disconnected');
});
});
Expand Down Expand Up @@ -97,7 +107,7 @@ app.post('/user', cors(), function(req, res) {
});
});

function _castMsg(msg, sender, name, time) {
function _castMsg(msg, sender, name, time, admin = false) {
console.log(`===== cast meg to members =====`);
let m = member.getMemberList();
for(let receiver in m) {
Expand All @@ -108,6 +118,7 @@ function _castMsg(msg, sender, name, time) {
msg,
name,
time,
admin,
ip: sender
},
json: true
Expand All @@ -116,12 +127,13 @@ function _castMsg(msg, sender, name, time) {
}
}

function _storeMsg(msg, ip, name, time) {
function _storeMsg(msg, ip, name, time, admin = false) {
_msgStorage = [..._msgStorage, {
msg,
ip,
name,
time
time,
admin
}];
if(_msgStorage.length > _msgLimit) {
_msgStorage = _msgStorage.slice(1);
Expand Down
4 changes: 3 additions & 1 deletion web/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,14 @@
<div id="broadcastContainer">
<div class="input-group">
<span class="input-group-addon bg-danger text-white" id="btnGroupAddon">公告</span>
<input type="text" class="form-control" aria-describedby="btnGroupAddon">
<input id="input-broadcast" type="text" class="form-control" aria-describedby="btnGroupAddon">
</div>
</div>
</div>
</div>
</div>
</div>
<script src="./js/index.js"></script>
<script src="./js/Broadcast.js"></script>
</body>
</html>
29 changes: 29 additions & 0 deletions web/js/Broadcast.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
var Broadcast = (_ => {
/**
* cache DOM
*/
var $broadcastInput = $('#input-broadcast');

/**
* init
*/
var _socket = App.getSocket();

/**
* bind eevnt
*/
$broadcastInput.on('keypress', _handleKeypress);

function _handleKeypress(e) {
if (e.keyCode == 13) {
var msg = $broadcastInput.val();
msg != '' && _sendBroadcast(msg);
}
}

function _sendBroadcast(msg) {
_socket.emit('broadcast', msg + '');
$broadcastInput.val('');
}

})();
23 changes: 23 additions & 0 deletions web/js/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
var App = (_ => {

/**
* init
*/
var _socket = io();

/**
* ws event
*/
_socket.on('disconnect', function () {
console.error('ws disconnect');
});

function getSocket() {
return _socket;
}

return {
getSocket
}

})();

0 comments on commit bf605e8

Please sign in to comment.