Persistent Connections Server.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
config
scripts
.gitattributes
.gitignore
Makefile
README.md
exch_client.cpp
exch_client.h
exch_exchanger.cpp
exch_exchanger.h
exch_server.cpp
exch_server.h
fcgipp.cpp
fcgipp.h
ini_parse.cpp
ini_parse.h
log_logger.cpp
log_logger.h
main.cpp
mem_rediscli.cpp
mem_rediscli.h

README.md

Persistent Connections Server.

libevent2を利用した持続接続サーバー。

alt exchanger

利用方法

libevent2モジュールのインストール

$ wget http://jaist.dl.sourceforge.net/project/levent/libevent/libevent-2.0/libevent-2.0.21-stable.tar.gz
$ tar xzvf libevent-2.0.21-stable.tar.gz
$ cd libevent-2.0.21-stable
$ ./configure
$ make
$ sudo make install

コンパイル

$ g++ -L/usr/local/lib -I/usr/local/include -lcrypto -lssl -levent -levent_openssl -o exchanger ./*.cpp

インストール

$ git clone https://github.com/Yujiro3/exchanger.git
$ cd exchanger
$ make
$ sudo make install
$
$ exchanger -c /etc/exchanger/exch.conf

フロー

alt flow1

WebSocketフロー

alt flow2

チャットアプリ

alt chat

exchangerヘッダーコマンド

■ ヘッダー:コマンド

  Exchanger-Command: <Command>

    tls       暗号化
    publish   複数送信
    send      単体送信


■ ヘッダー:リストキー

  Exchanger-to: <Number>

    Number      送信先番号
    Number      送信先ルーム番号


■ ヘッダー:セッションID

  Exchanger-SID: <SessionID>

    sid       123

FastCGIアプリ側(php)

<?php
/* 自分自身に返信 */
$to = $_SERVER['Exchanger-SID'];

header("Exchanger-Command: send");
header("Exchanger-to: {$to}");
header("Content-length: ".strlen($buffer));

echo $buffer;

ライセンス

Copyright © 2013 Yujiro Takahashi
Licensed under the MIT License.
Distributed under the MIT License.