telegraph

A framework which acts as an interface between Socket.IO and Express.

Usage no npm install needed!

<script type="module">
  import telegraph from 'https://cdn.skypack.dev/telegraph';
</script>

README

Telegraph

Telegraph pulls together Express and Socket.io with a syntax similar to Backbone.js.

require('telegraph');

// Current defaults for Telegraph
var server = new Telegraph.Server({
     'appname'        : "Telegraph",
     'database'       : false, // More documentation on this later
     'express'        : express.createServer(),
     'public'         : 'public',
     'routes'         : {},
     'socketio'       : false,
     'views'          : 'views',
     'view engine'    : 'ejs' 
});

Routes

Once you have added a Server, add routes just as you would with Express:

server.get('/post/:id', function(req, res) {
    var id = req.params.id,
        article = articles.get(id);
    
    res.render('single', article);
});

server.post('/post', function(req, res) {
    articles.add(req.params);
});

server.put('/post/:id', function(req, res) {
    var article = article.get(req.params.id);
    
    article.set(req.params);
});

server.delete('/post/:id', function(req, res) {
    articles.remove(params.req.id);    
});

Configure Express

server.use(express.session({ secrete: "super secrete" }));
// or
server.use("session", { secret: 'super secret' });

server.set("view engine", "jade");

Using Socket.io functions:

To enable socket.io functionality, set the socketio attribute to true upon creation of your new Telegraph.Server object:

var server = new Telegraph.Server(
    'socketio'     : true          // If set to true, Telegraph will enable socket.io functionality
});

This will create an instance of socket.io at the io attribute of your new server object (server.io). You can now add standard socket.io events using the listen and send methods, like so:

// Socket.IO Functions
server.listen('connection', function() {
    console.log("connected");
   
    server.send('updates', { information : "here" });
});

In your clientside application, you can receive commands from the server like so:

<script src="/socket.io/socket.io.js" type="text/javascript"></script>
<script>
    var socket = io.connect('http://localhost');
   
    socket.on('updates', function(data) {
        console.log(data); 
    });
      
</script>

Starting the Server:

Once you have created a server starting it is easy:

server.start(4000);

Don't see something here you like from Express or Socket.io?

Target Express directly:

// server.express == Express
server.express

Target Socket.io directly:

// server.io == socket.io
server.io