Skip to content

Instantly share code, notes, and snippets.

@javascripto
Last active April 1, 2019 13:08
Show Gist options
  • Select an option

  • Save javascripto/5da6955ac291e7582eb659584f96fe1b to your computer and use it in GitHub Desktop.

Select an option

Save javascripto/5da6955ac291e7582eb659584f96fe1b to your computer and use it in GitHub Desktop.
Socket.io
<h1>Socket.io</h1>
<div id="msgs"></div>
<input type="text">
<script src="/socket.io/socket.io.js"></script>
<script src="/socket.io-client.js"></script>
/* jshint esversion: 6 */
const socket = io();
const msgs = document.querySelector('#msgs');
const input = document.querySelector('input');
socket.on('connect', () => {
msgs.innerHTML += `Connected with id: ${socket.id} <br>`;
socket.emit('msg', `I'm connected ${socket.id}`);
});
socket.on('msg', msg => {
msgs.innerHTML += `Received message: ${msg}<br>`;
});
input.onkeydown = ({ keyCode }) => {
if (keyCode === 13) {
msgs.innerHTML += `You: ${input.value}<br>`;
socket.emit('msg', input.value);
input.value = '';
}
};
/* jshint esversion: 6 */
const http = require('http');
const express = require('express');
const socketio = require('socket.io');
const app = express();
const server = http.createServer(app);
const io = socketio(server);
app.get('/', (req, res) => res.sendFile(`${__dirname}/index.html`));
app.get('/client.js', (req, res) => res.sendFile(__dirname + '/client.js'));
io.on('connection', socket => {
console.log('New connection', socket.id);
socket.broadcast.emit('msg', `${socket.id} connected`);
socket.on('msg', msg => {
console.log(`${socket.id} ${msg}`);
socket.broadcast.emit('msg', msg);
socket.join('contador');
});
});
let counter = 0;
setInterval(() => {
io.to('contador').emit('msg', counter++);
}, 10000);
server.listen(3000, () => {
console.log(`Server listening on port ${server.address().port}`);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment