Created
July 10, 2013 15:41
-
-
Save dirkk0/5967385 to your computer and use it in GitHub Desktop.
working Cloud9 Socket.io example (via http://www.worldofwebcraft.com/blog.php?id=219 and http://charless.org/?p=283 )
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <html> | |
| <head> | |
| <title>Cloud9, NodeJS & Heroku: websockets for all</title> | |
| <script src="/socket.io/socket.io.js"></script> | |
| <script> | |
| onerror = function(msg) { | |
| log(msg); | |
| } | |
| function log(msg) { | |
| document.getElementById('log').appendChild(document.createTextNode(new Date() + ' ' + msg + '\n')); | |
| } | |
| function status(msg) { | |
| log(msg); | |
| document.getElementById('status').textContent = msg; | |
| } | |
| function clearLog() { | |
| var e = document.getElementById('log'); | |
| while (e.hasChildNodes()) { | |
| e.removeChild(e.firstChild); | |
| } | |
| e.appendChild(document.createTextNode('Log: \n')); | |
| } | |
| </script> | |
| <script> | |
| var socket = null; | |
| function connect() { | |
| log('Connecting to local server...'); | |
| if (socket == null) { | |
| socket = io.connect(null, { | |
| 'auto connect': false | |
| }); | |
| socket.on('connect', function() { | |
| status('Connected'); | |
| }); | |
| socket.on('message', function(data) { | |
| log(data); | |
| }); | |
| } | |
| socket.socket.connect(); | |
| } | |
| function send() { | |
| if (socket && socket.socket.connected) { | |
| socket.send(document.getElementById('text').value); | |
| log('>' + document.getElementById('text').value); | |
| } | |
| else { | |
| log('Not connected.'); | |
| } | |
| } | |
| function send100() { | |
| if (socket && socket.socket.connected) { | |
| for (var i = 0; i < 100; i += 1) { | |
| socket.send('test' + i); | |
| log('> test' + i); | |
| } | |
| } | |
| else { | |
| log('Not connected.'); | |
| } | |
| } | |
| function update() { | |
| if (socket && socket.socket && socket.socket.transport) { | |
| document.getElementById('sessionId').textContent = socket.socket.transport.sessid; | |
| document.getElementById('transport').textContent = socket.socket.transport.name; | |
| } | |
| else { | |
| document.getElementById('sessionId').textContent = '-'; | |
| document.getElementById('transport').textContent = '-'; | |
| } | |
| } | |
| setInterval(update, 10); | |
| </script> | |
| </head> | |
| <body onload="connect()"> | |
| <p> | |
| <label style='width:200px;float:left'>Status: | |
| <span id="status">Idle</span> | |
| </label> | |
| </p> | |
| <p>SessionId: | |
| <span id="sessionId">-</span> | |
| </p> | |
| <p>Transport: | |
| <span id="transport">-</span> | |
| </p> | |
| <p> | |
| <label>Message: | |
| <input id="text" type="text" size="80" value="" /> | |
| </label> | |
| <input type=button value="Echo" onclick="send()"> | |
| </p> | |
| <p> | |
| <input type=button value="Spam 100 packets" onclick="send100()" /> | |
| <input type=button value="Clear log" onclick="clearLog()" /> | |
| </p> | |
| <pre id="log">Log:</pre> | |
| <script src="JS/ext.js"></script> | |
| </body> | |
| </html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var server = require("http").createServer(handler); | |
| var io = require("socket.io").listen(server); | |
| var fs = require("fs"); | |
| var path = require("path"); | |
| var url = require("url"); | |
| server.listen(process.env.PORT || 8001); | |
| var mimeTypes = { '.html':'text/html', '.php':'text/php', '.js':'text/javascript','.css':'text/css', | |
| '.png':'image/png', '.gif':'image/gif','.jpeg':'image/jpeg' }; | |
| function handler(request, response) { | |
| var lookup = url.parse(decodeURI(request.url)).pathname; | |
| lookup = (lookup === '/') ? '/index.html' : lookup; | |
| lookup = lookup.substr(1); | |
| fs.exists(lookup, function(exists){ | |
| if (exists) { | |
| fs.readFile(lookup, function(error, data){ | |
| if (error) { | |
| response.writeHead(500); | |
| response.end('Sorry, server Error'); | |
| return; | |
| } | |
| var headers = {'Content-Type': mimeTypes[path.extname(lookup)]}; | |
| response.writeHead(200, headers); | |
| response.end(data); | |
| }); | |
| return; | |
| } | |
| response.writeHead(404); | |
| response.end('page nof found...'); | |
| }); | |
| } // end function handler | |
| io.sockets.on('connection', function(socket){ | |
| socket.on('message', function(data){ | |
| console.log(data); | |
| socket.send("[ECHO] " + data); | |
| }); | |
| }); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment