added new path /webrtc for testing purposes

This commit is contained in:
Marc Wäckerlin
2016-11-25 16:02:38 +00:00
parent 0c400cf0da
commit d0e32dfcae
15 changed files with 3325 additions and 2699 deletions

View File

@@ -0,0 +1,4 @@
#EXEC_SAFECHAT="/usr/bin/nodejs /usr/share/safechat/nodejs/safechat"
#SAFECHAT_LOG="/var/log/SAFECHAT.log"
#SAFECHAT="safechat"
#SAFECHAT_PORT="8888"

View File

@@ -0,0 +1,38 @@
#!upstart
description "Secure and Encrypted Chat Server"
author "Marc Wäckerlin (https://marc.wäckerlin.ch) <marc@waeckerlin.org>"
start on (local-filesystems and net-device-up)
stop on runlevel [!2345]
respawn
script
echo $$ > /var/run/safechat.pid
# there are some useful defaults
# do not edit this file, overwrite values in /etc/default/safechat
EXEC_SAFECHAT="/usr/bin/nodejs /usr/share/safechat/nodejs/safechat"
SAFECHAT_LOG="/var/log/safechat.log"
SAFECHAT_USER="safechat"
SAFECHAT_PORT=""
[ -r /etc/default/safechat ] && . /etc/default/safechat
if test -n "${SAFECHAT_USER}"; then
exec sudo -u "${SAFECHAT_USER}" ${EXEC_SAFECHAT} ${SAFECHAT_PORT} >> ${SAFECHAT_LOG} 2>&1
else
exec ${EXEC_SAFECHAT} ${SAFECHAT_PORT} >> ${SAFECHAT_LOG} 2>&1
fi
end script
pre-start script
SAFECHAT_LOG="/var/log/safechat.log"
[ -r /etc/default/safechat ] && . /etc/default/safechat
# Date format same as (new Date()).toISOString() for consistency
echo "[2016-11-25T11:53:52.543Z] (sys) Starting" >> ${SAFECHAT_LOG}
end script
pre-stop script
SAFECHAT_LOG="/var/log/safechat.log"
[ -r /etc/default/safechat ] && . /etc/default/safechat
rm /var/run/safechat.pid
echo "[2016-11-25T11:53:52.544Z] (sys) Stopping" >> ${SAFECHAT_LOG}
end script

View File

@@ -1,24 +1,38 @@
## @id $Id$
##
## This file has been added:
## - by bootstrap.sh
## - on Fri, 25 November 2016 13:55:11 +0100
## Feel free to change it or even remove and rebuild it, up to your needs
##
## 1 2 3 4 5 6 7 8
## 45678901234567890123456789012345678901234567890123456789012345678901234567890
EXTRA_DIST = package.json.in database doc public routes sockets safechat.js views
EXTRA_DIST = @PACKAGE_NAME@.js package.json.in public routes sockets views
nodejsdir = ${pkgdatadir}/nodejs
node_modules:
npm install
sysconfdefaultdir = ${sysconfdir}/default
sysconfinitdir = ${sysconfdir}/init
dist_sysconf_DATA = etc/@PACKAGE_NAME@.json
dist_sysconfdefault_DATA = etc/default/@PACKAGE_NAME@
dist_sysconfinit_DATA = etc/init/@PACKAGE_NAME@.conf
all: node_modules
node_modules: package.json.in
HOME=. npm install
clean-local:
-rm -r node_modules .npm
install-data-hook:
test -d $(DESTDIR)${nodejsdir} || mkdir -p $(DESTDIR)${nodejsdir}
chmod -R u+w $(DESTDIR)${nodejsdir}
cp -r . $(DESTDIR)${nodejsdir}
uninstall-local:
-chmod -R u+w $(DESTDIR)${nodejsdir}
-rm -rf $(DESTDIR)${nodejsdir}
clean-local:
-rm -rf node_modules
MAINTAINERCLEANFILES = makefile.in

View File

@@ -1,6 +1,7 @@
{
"name": "@PACKAGE_NAME@",
"version": "@PACKAGE_VERSION@",
"documentation": "https://dev.marc.waeckerlin.org/doc/safechat/",
"private": true,
"dependencies": {
"ejs": "~2.5.2",

View File

@@ -0,0 +1,5 @@
body
padding: 50px
font: 14px "Lucida Grande", Helvetica, Arial, sans-serif
a
color: #00B7FF

View File

@@ -6,9 +6,17 @@
var package = require(__dirname+"/../package.json");
exports.index = function(req, res) {
res.render('index', {
projecturl: "https://dev.marc.waeckerlin.org/redmine/projects/safechat/embedded/index.html",
packagename: package.name,
packageversion: package.version
res.render(path, {
projecturl: package.documentation,
packagename: package.name,
packageversion: package.version
})
}
exports.webrtc = function(req, res) {
res.render('webrtc', {
projecturl: package.documentation,
packagename: package.name,
packageversion: package.version
});
};
}

View File

@@ -2,11 +2,10 @@
* Module dependencies.
*/
var express = require('express'),
routes = require(__dirname+'/routes');
var package = require(__dirname+'/package.json');
var config = require(package.path.config);
var express = require('express');
var routes = require(__dirname+'/routes');
var app = module.exports = express.createServer();
var io = require('socket.io').listen(app);
var sql = require(__dirname+'/database')(config.mysql);
@@ -58,6 +57,7 @@ io.sockets.on('connection', sockets.connection);
// Routes
app.get('/', routes.index);
app.get('/webrtc', routes.webrtc);
app.listen(config.port, function(){
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);

54
nodejs/views/webrtc.ejs Normal file
View File

@@ -0,0 +1,54 @@
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width initial-scale=1" />
<link href="stylesheets/safechat.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery/jquery.min.js"></script>
<link href="stylesheets/jquery.cssemoticons.css" media="screen" rel="stylesheet" type="text/css" />
<script src="javascripts/ext/jquery.cssemoticons.js" type="text/javascript"></script>
<title>WebRTC Test</title>
</head>
<body>
<h1>WebRTC test</h1>
<div id="status">
<div id="main">
<noscript>JavaScript is required!</noscript>
<video autoplay></video>
</div>
<script>
try {
var errorCallback = function(e) {
$('#status').html('ERROR: '+e)
console.log('ERROR:', e)
}
navigator.getUserMedia = navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia
if (navigator.getUserMedia) {
// Not showing vendor prefixes.
navigator.getUserMedia({
video: true,
audio: true,
facingMode: "user"
}, function(localMediaStream) {
var video = document.querySelector('video')
video.src = window.URL.createObjectURL(localMediaStream)
// Note: onloadedmetadata doesn't fire in Chrome when using it with getUserMedia.
// See crbug.com/110938.
video.onloadedmetadata = function(e) {
// Ready to go. Do some stuff.
};
}, errorCallback)
} else {
$('#status').html('ERROR: WebRTC not fully supported in this browser')
}
} catch (e) {
$('#status').html('ERROR: '+e.message)
}
</script>
</body>
</html>