From 66630b7c4eda673b768c2bfb1ca151ff79425edc Mon Sep 17 00:00:00 2001 From: Drew LeSueur Date: Sun, 26 Dec 2010 12:09:58 +0000 Subject: [PATCH] imlementing web socket server --- index.html | 33 ++++++++++++++++++++++++++++ mobile-coder.coffee | 16 ++++++++++++++ mobile-coder.js | 19 +++++++++++++++++ socket-server.coffee | 13 +++++++++++ socket2.coffee | 51 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 132 insertions(+) create mode 100644 index.html create mode 100644 mobile-coder.coffee create mode 100644 mobile-coder.js create mode 100644 socket-server.coffee create mode 100644 socket2.coffee diff --git a/index.html b/index.html new file mode 100644 index 0000000..59023a3 --- /dev/null +++ b/index.html @@ -0,0 +1,33 @@ + + + + editor + + + + + + +   +   +   +   + + + + + + + +
+
+ diff --git a/mobile-coder.coffee b/mobile-coder.coffee new file mode 100644 index 0000000..d10c825 --- /dev/null +++ b/mobile-coder.coffee @@ -0,0 +1,16 @@ +$(document).ready () -> + + ws = new WebSocket "ws://mcode.the.tl:9999/" + ws.onopen = () -> + console.log "open" + ws.send "hahaha" + ws.onmessage = (e) -> + console.log e.data + ws.onclose = (e) -> + console.log "closed!!" + ws.onerror = (e) -> + console.log "error" +# socket = new io.Socket("ws://mcode.the.tl:8008/") +# socket.connect() +# socket.send "test" + diff --git a/mobile-coder.js b/mobile-coder.js new file mode 100644 index 0000000..7572b8c --- /dev/null +++ b/mobile-coder.js @@ -0,0 +1,19 @@ +(function() { + $(document).ready(function() { + var ws; + ws = new WebSocket("ws://mcode.the.tl:9999/"); + ws.onopen = function() { + console.log("open"); + return ws.send("hahaha"); + }; + ws.onmessage = function(e) { + return console.log(e.data); + }; + ws.onclose = function(e) { + return console.log("closed!!"); + }; + return ws.onerror = function(e) { + return console.log("error"); + }; + }); +}).call(this); diff --git a/socket-server.coffee b/socket-server.coffee new file mode 100644 index 0000000..22070b1 --- /dev/null +++ b/socket-server.coffee @@ -0,0 +1,13 @@ +http = require "http" +io = require "socket.io" +server = http.createServer (req, res) -> + res.writeHeader 200, + "Content-Type" : "text/html" + res.end "

Hello World

" + +server.listen 8008 +socket = io.listen server +socket.on "connection", (client) -> + info = {} + client.on "message", (message) -> + client.send "hi" + message diff --git a/socket2.coffee b/socket2.coffee new file mode 100644 index 0000000..1fa3a12 --- /dev/null +++ b/socket2.coffee @@ -0,0 +1,51 @@ +net = require "net" +Server = net.Server +Stream = net.Stream +_ = require "underscore" +root._ = _ +require "zextra/util.js" + +hostname = "mcode.the.tl" +port = 9999 + +location = "/" + + +allDigits = (str) -> + str.replace /\D/g, "" + +numberOfSpaces = (str) -> + str.replace(/[^ ]/g, "").length + +server = new Server +server.on 'connection', (stream) -> + stream.on "data", (str) -> + str = str.toString() + console.log str.toString() + if _.startsWith str, "GET / HTTP/1.1\r\nUpgrade: WebSocket\r\nConnection: Upgrade" + console.log "web socket here we come" + + req = str.split "\r\n" + for line in req + if _(line).startsWith "Sec-WebSocket-Key1" + key1 = _.s line, "Sec-WebSocket-Key1".length + 1 + if _(line).startsWith "Sec-WebSocket-Key2" + key2 = _.s line, "Sec-WebSocket-Key2".length + 1 + + console.log "key 1 is #{key1}" + console.log "key 2 is #{key2}" + + #older code sir, but it doesn't checkout anymore + #stream.write "HTTP/1.1 101 Web Socket Protocol Handshake\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nWebSocket-Origin: http://#{hostname}:#{port}\r\nWebSocket-Location: ws://#{hostname}:#{port}#{location}\r\n\r\n" + else if _.startsWith str, "GET" + content = "yo world" + stream.write "HTTP/1.1 200 OK\r\n" + + "Connection: close\r\n" + + "Content-Type: text/html\r\n" + + "Content-Length: #{content.length}\r\n\r\n" + + content +server.listen port +#server = net.createServer (c) -> +# console.log "testerson" +#server.listen 1001 +