Skip to content

Instantly share code, notes, and snippets.

@3rd-Eden
Created September 21, 2011 19:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save 3rd-Eden/1233030 to your computer and use it in GitHub Desktop.
Save 3rd-Eden/1233030 to your computer and use it in GitHub Desktop.
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form id="chat">
<fieldset id="blabla">
</fieldset>
<fieldset>
<label>
nickname: <input type="text" name="nickname" value="anonymous" />
</label>
<label>
message: <input type="text" name="line" value="" />
</label>
<button type="submit">Send</button>
</fieldset>
</form>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect();
// message sending
$('#chat').submit(function (e) {
e.preventDefault();
var message = $('input[name="line"]')
, nickname = $('input[name="nickname"]');
if (!message.val().length) return;
socket.emit('chat', { nickname: nickname.val(), line: message.val() });
message.val('');
});
// chat messages
socket.on('chat', function (data) {
// escape html
function esc (html) { return new Option(html).innerHTML }
$('<p><strong>' + esc(data.nickname) + ':</strong> ' + esc(data.line) + '</p>')
.appendTo('#blabla');
})
</script>
</body>
</html>
var connect = require('connect')
, app = connect.createServer(connect.static(__dirname));
// require the new redis store
var RedisStore = require('./socket.io-master/lib/stores/redis')
, io = require('socket.io').listen(app);
// configure socket.io
io.set('transports', ['xhr-polling', 'jsonp-polling']);
io.set('store', new RedisStore);
// same shit different server
io.sockets.on('connection', function (socket) {
socket.on('chat', function (data) {
console.log('zing, ping pong boom');
socket.broadcast.emit('chat', data);
})
});
app.listen(process.env.CLUSTER_PORT || 8080);
console.log('Listening on', app.address())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment