client-server: the ws_stdin.js reads from stdin. visionneuse.html can be in multiple browsers and displays the texts typed on stdin
parent
86190027c1
commit
16beb2f684
|
@ -0,0 +1 @@
|
|||
websocket_demo/node_modules/
|
|
@ -0,0 +1,36 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Web socket test</title>
|
||||
<script type="text/javascript">
|
||||
|
||||
var ws;
|
||||
|
||||
function sendMessage(){
|
||||
var message = document.getElementById('message').value;
|
||||
ws.send(message);
|
||||
}
|
||||
|
||||
function connection() {
|
||||
ws = new WebSocket('ws://localhost:1234', 'echo-protocol');
|
||||
|
||||
ws.addEventListener("message", function(e) {
|
||||
// The data is simply the message that we're sending back
|
||||
var msg = e.data;
|
||||
|
||||
// Append the message
|
||||
document.getElementById('chatlog').innerHTML += '<br>' + msg;
|
||||
});
|
||||
|
||||
document.getElementById('connect_button').style.display = 'none';
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body onload=connection()>
|
||||
<div>Received from server:</div>
|
||||
<div id='chatlog'></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,75 @@
|
|||
|
||||
var count = 0;
|
||||
var clients = {};
|
||||
|
||||
var http = require('http');
|
||||
var server = http.createServer(function(request, response) {});
|
||||
|
||||
server.listen(1234, function() {
|
||||
console.log((new Date()) + ' Server is listening on port 1234');
|
||||
});
|
||||
|
||||
var WebSocketServer = require('websocket').server;
|
||||
wsServer = new WebSocketServer({
|
||||
httpServer: server
|
||||
});
|
||||
|
||||
|
||||
wsServer.on('request', function(r) {
|
||||
|
||||
var connection = r.accept('echo-protocol', r.origin);
|
||||
|
||||
// Specific id for this client & increment count
|
||||
var id = count++;
|
||||
|
||||
// Store the connection method so we can loop through & contact all clients
|
||||
clients[id] = connection
|
||||
|
||||
console.log((new Date()) + ' Connection accepted [' + id + ']');
|
||||
clients[id].sendUTF("Welcome to the server. You are connected. This message has been pushed to you.");
|
||||
|
||||
// Create event listener
|
||||
connection.on('message', function(message) {
|
||||
|
||||
// The string message that was sent to us
|
||||
var msgString = message.utf8Data;
|
||||
|
||||
// Loop through all clients
|
||||
for(var i in clients){
|
||||
// Send a message to the client with the message
|
||||
clients[i].sendUTF(msgString);
|
||||
}
|
||||
});
|
||||
|
||||
// Create event listener for close
|
||||
connection.on('close', function(reasonCode, description) {
|
||||
delete clients[id];
|
||||
console.log((new Date()) + ' Peer ' + connection.remoteAddress + ' disconnected.');
|
||||
});
|
||||
});
|
||||
|
||||
var sendTime = function () {
|
||||
var now, i = 0;
|
||||
|
||||
// get time now
|
||||
now = new Date();
|
||||
|
||||
// send time to all clients
|
||||
for(i in clients) {
|
||||
// Send a message to the client with the message
|
||||
clients[i].sendUTF(now);
|
||||
}
|
||||
|
||||
// repeat in 5 seconds
|
||||
setTimeout(sendTime, 5000);
|
||||
};
|
||||
|
||||
process.stdin.resume();
|
||||
process.stdin.on('data', function(chunk) {
|
||||
process.stdout.write('data: ' + chunk);
|
||||
for(i in clients) {
|
||||
// Send a message to the client with the message
|
||||
clients[i].sendUTF(chunk);
|
||||
}
|
||||
});
|
||||
// every 5 seconds send the date/time
|
Loading…
Reference in New Issue