From ee350e6e5ec04e638a228e334709eb28abfc2fe1 Mon Sep 17 00:00:00 2001
From: Neil Gershenfeld <neil.gershenfeld@cba.mit.edu>
Date: Fri, 19 May 2017 00:30:12 -0400
Subject: [PATCH] starting server.js
---
client-server/server.js | 98 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 98 insertions(+)
create mode 100644 client-server/server.js
diff --git a/client-server/server.js b/client-server/server.js
new file mode 100644
index 0000000..2b31187
--- /dev/null
+++ b/client-server/server.js
@@ -0,0 +1,98 @@
+//
+// server.js
+// streaming content server
+// Neil Gershenfeld
+// 2/12/17
+// todo
+// standalone client content push
+// browser client content push
+// https
+// parse command line
+// add authentication
+// interframe compression
+// include audio
+// uses maim for screen capture:
+// https://github.com/naelstrof/maim
+// https://github.com/naelstrof/maim/archive/master.zip
+// install libimlib2-dev libxrandr-dev libxfixes-dev cmake
+//
+// command line
+//
+if (process.argv.length != 3) {
+ console.log("node server.js port")
+ process.exit()
+ }
+var port = parseInt(process.argv[2])
+//
+// requires
+//
+const http = require('http')
+const fs = require('fs')
+//
+// globals
+//
+
+//
+// initialization
+//
+var img = null
+//
+// start tcp server
+//
+//
+// start http server
+//
+http.createServer(function(request,response) {
+ var headers = request.headers
+ var method = request.method
+ var url = request.url
+ if (url == '/') {
+ fs.readFile('client.html',function(err,data){
+ response.writeHead(200,{'Content-Type':'text/html'});
+ response.end(data)
+ })
+ }
+ else if (url == '/img') {
+ //requests.push(response)
+ response.writeHead(200,{'Content-Type':'application/octet-stream'})
+ response.end(img,'binary')
+ }
+ else if (url == '/initimg') {
+ response.writeHead(200,{'Content-Type':'application/octet-stream'})
+ response.end(img,'binary')
+ }
+ else if (url == '/server.js') {
+ fs.readFile('server.js',function(err,data){
+ response.writeHead(200,{'Content-Type':'text/plain'});
+ response.end(data)
+ })
+ }
+ else if (url == '/client.js') {
+ fs.readFile('client.js',function(err,data){
+ response.writeHead(200,{'Content-Type':'text/plain'});
+ response.end(data)
+ })
+ }
+ else if (url == '/client.html') {
+ fs.readFile('viewer.html',function(err,data){
+ response.writeHead(200,{'Content-Type':'text/plain'});
+ response.end(data)
+ })
+ }
+ else if (url == '/stats') {
+ var resp = "<html>"
+ resp += "<body>"
+ resp += "stats"
+ //resp += "last: "+last+"<br>"
+ //resp += "max: "+max+"<br>"
+ response.writeHead(200,{'Content-Type':'text/html'});
+ response.end(resp)
+ }
+ }).listen(port)
+//
+// start event loop
+//
+
+//
+// event loop
+//
--
GitLab