[Groonga-commit] groonga/express-kotoumi [master] Express adaptor should be loaded by the root index.js

Back to archive index

YUKI Hiroshi null+****@clear*****
Fri Jan 18 16:56:01 JST 2013


YUKI Hiroshi	2013-01-18 16:56:01 +0900 (Fri, 18 Jan 2013)

  New Revision: 7a4388666155cc460945dd07661254ba7b344abf
  https://github.com/groonga/express-kotoumi/commit/7a4388666155cc460945dd07661254ba7b344abf

  Log:
    Express adaptor should be loaded by the root index.js

  Modified files:
    index.js

  Modified: index.js (+1 -108)
===================================================================
--- index.js    2013-01-18 16:54:49 +0900 (6e964a3)
+++ index.js    2013-01-18 16:56:01 +0900 (d89d5ca)
@@ -1,108 +1 @@
-var express = require('express')
-  , app = express.application;
-
-var fluent = require('fluent-logger');
-
-var callbacks = {};
-var socketio = null;
-
-function register_callback(callback) {
-  var res = this.message_id || 0;
-  res += 1;
-  callbacks[res] = callback;
-  this.message_id = res;
-  return res;
-}
-
-function rest_request_handler(req, res) {
-  /* todo: should be abstracted */
-  var message = {
-    body: {
-      params: req.params,
-      query: req.query,
-      body: req.body,
-      cookies: req.cookies
-    }
-  };
-  if (req.query.volatile) {
-    res.send('accepted');
-  } else {
-    var message_id = register_callback(function(data) {
-      res.contentType('application/json');
-      res.send(JSON.stringify(data.body));
-    });
-    message["reply_to"] = {
-      type: "rest",
-      message_id: message_id
-    },
-  }
-  fluent.emit('message', message);
-}
-
-function socketio_connection_handler(socket) {
-  socket.on('message', function (data) {
-    if (data.to) {
-      switch (data.to.type) {
-      case "socketio" :
-        if (data.to.session_id) {
-          var socket = socketio.sockets.socket(data.to.session_id);
-          if (socket) {
-            socket.send(data.body);
-          } else {
-            /* closed? */
-          }
-        } else {
-          /* todo: broadcast */
-        }
-        break;
-      default :
-        var message_id = data.to.message_id;
-        if (callbacks[message_id]) {
-          callbacks[message_id](data);
-          delete callbacks(message_id);
-        } else {
-          /* timeout? */
-        }
-        break;
-      }
-    } else {
-      var message = {
-        body: data
-      };
-      if (!data.query.volatile) {
-        message["reply_to"] =  {
-          type: "socketio",
-          session_id: socket.id;
-        }
-      }
-      fluent.emit('message', message);
-    }
-  });
-}
-
-app.kotoumi = function(name, io, opts) {
-  fluent.configure(
-    opts.fluent_tag || 'kotoumi',
-    {host: opts.fluent_host || 'localhost',
-     port: opts.fluent_port || 24224});
-  if (name == '/') {
-    io.sockets.on('connection', socketio_connection_handler);
-  } else {
-    io.of(name).on('connection', socketio_connection_handler);
-  }
-  app.all(name + '*', rest_request_handler);
-  socketio = io;
-}
-
-exports.emit = function(req, callback) {
-  var message = {
-    body: req
-  };
-  if (callback) {
-    message["reply_to"] = {
-      type: "application",
-      message_id: register_callback(callback);
-    }
-  }
-  fluent.emit('message', message);
-}
+var expressAdaptor = require('./lib/express-adaptor');
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index