mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-20 15:36:16 -04:00
first-commit
This commit is contained in:
commit
325c322a27
207 changed files with 35989 additions and 0 deletions
128
node/server.js
Normal file
128
node/server.js
Normal file
|
@ -0,0 +1,128 @@
|
|||
// Simple Node & Socket server
|
||||
|
||||
var http = require('http')
|
||||
, url = require('url')
|
||||
, fs = require('fs')
|
||||
, io = require('socket.io')
|
||||
, sys = require('sys')
|
||||
, server;
|
||||
|
||||
server = http.createServer(function(req, res){
|
||||
var path = url.parse(req.url).pathname;
|
||||
|
||||
if(path.substring(0,"/static".length) == "/static" || path.substring(0,"/p/".length) == "/p/")
|
||||
{
|
||||
if(path.substring(0,"/p/".length) == "/p/")
|
||||
{
|
||||
if(path.length < 7)
|
||||
send404(res, path);
|
||||
|
||||
path = "/static/padhtml";
|
||||
}
|
||||
|
||||
sendFile(res, path, __dirname + "/.." + path);
|
||||
}
|
||||
else if(path == "/")
|
||||
{
|
||||
sendRedirect(res, path, "/p/test");
|
||||
}
|
||||
else if(path == "/newpad")
|
||||
{
|
||||
sendRedirect(res, path, "/p/" + randomPadName());
|
||||
}
|
||||
else if(path == "/ep/pad/reconnect")
|
||||
{
|
||||
if(req.headers.referer != null)
|
||||
sendRedirect(res, path, req.headers.referer);
|
||||
else
|
||||
send404(res, path);
|
||||
}
|
||||
else
|
||||
{
|
||||
send404(res, path);
|
||||
}
|
||||
});
|
||||
server.listen(80);
|
||||
|
||||
function randomPadName() {
|
||||
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
|
||||
var string_length = 10;
|
||||
var randomstring = '';
|
||||
for (var i=0; i<string_length; i++) {
|
||||
var rnum = Math.floor(Math.random() * chars.length);
|
||||
randomstring += chars.substring(rnum,rnum+1);
|
||||
}
|
||||
return randomstring;
|
||||
}
|
||||
|
||||
function sendFile(res, reqPath, path)
|
||||
{
|
||||
fs.readFile(path, function(err, data){
|
||||
if (err){
|
||||
send404(res, reqPath);
|
||||
} else {
|
||||
var contentType = "text/html";
|
||||
|
||||
if (path.substring(path.length -3, path.length) == ".js")
|
||||
contentType = "text/javascript";
|
||||
else if (path.substring(path.length -4, path.length) == ".css")
|
||||
contentType = "text/css";
|
||||
else if (path.substring(path.length -4, path.length) == ".gif")
|
||||
contentType = "image/gif";
|
||||
|
||||
res.writeHead(200, {'Content-Type': contentType});
|
||||
res.write(data, 'utf8');
|
||||
res.end();
|
||||
|
||||
requestLog(200, reqPath, "-> " + path);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function send404(res, reqPath)
|
||||
{
|
||||
res.writeHead(404);
|
||||
res.write("404 - Not Found");
|
||||
res.end();
|
||||
|
||||
requestLog(404, reqPath, "NOT FOUND!");
|
||||
}
|
||||
|
||||
function sendRedirect(res, reqPath, location)
|
||||
{
|
||||
res.writeHead(302, {'Location': location});
|
||||
res.end();
|
||||
|
||||
requestLog(302, reqPath, "-> " + location);
|
||||
}
|
||||
|
||||
function requestLog(code, path, desc)
|
||||
{
|
||||
//console.log(code +", " + path + ", " + desc);
|
||||
}
|
||||
|
||||
var io = io.listen(server);
|
||||
var messageHandler = require("./MessageHandler");
|
||||
messageHandler.setSocketIO(io);
|
||||
|
||||
io.on('connection', function(client){
|
||||
try{
|
||||
messageHandler.handleConnect(client);
|
||||
}catch(e){console.error(e);}
|
||||
|
||||
client.on('message', function(message){
|
||||
//try{
|
||||
messageHandler.handleMessage(client, message);
|
||||
//}catch(e){console.error(e);}
|
||||
});
|
||||
|
||||
client.on('disconnect', function(){
|
||||
try{
|
||||
messageHandler.handleDisconnect(client);
|
||||
}catch(e){console.error(e);}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue