HTTP + WebSocket load balancer based on Poseidon
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
circe-@@temp-late@@
circe-auth
circe-box
circe-common
circe-foyer
circe-gate
circe-pilot
doc
etc/circe
poseidon @ 9b33c98
protocol
.gitignore
.gitmodules
LICENSE
Makefile.am
README.md
check_includes.sh
common
configure.ac
create_project.sh
dump_mysql-table-structure.sh
makedeb.sh
precompiled.hpp
precompiled.hpp.gch
reconfig_debug_cxx11.sh
reconfig_debug_cxx98.sh
reconfig_optimized_debug_cxx11.sh
reconfig_optimized_debug_cxx98.sh
reconfig_release_cxx11.sh
reconfig_release_cxx98.sh
reconfig_sanitized_debug_cxx11.sh
reconfig_sanitized_debug_cxx98.sh
run.sh
servers.md

README.md

GNU nano for the win!

poseidon-circe

基于 poseidon 的 HTTP 和 WebSocket 负载均衡框架。

Wiki 页面 上有服务器架构图和消息流程图。

服务器间通信基于 TCP 的长连接,数据流采用 deflate 压缩和 AES CFB 模式加密。

编译并运行

git clone https://github.com/lhmouse/poseidon-circe.git
cd poseidon-circe
git submodule init
git submodule update

pushd poseidon
git checkout master
git reset --hard origin/master
./reconfig_optimized_debug_cxx11.sh
# 如果已安装 poseidon 可以跳过这一步,直接转到 [1]。
make -j$(nproc)
./makedeb.sh
# [1]
popd

./reconfig_optimized_debug_cxx11.sh
make -j$(nproc)
./run_server.sh

测试

默认情况下,Circe 侦听于端口 3809。在浏览器中访问 http://server.ip:3809/ 将打开一个包含一行 Hello World! 的页面。

使用 WebSocket 访问 ws://server.ip:3809/ 可以测试发送和接收文本消息。

定制功能

直接复制并修改 Auth Server(登录认证服务器)和 Box Server(业务服务器)的代码。只需修改以下两个文件,就可自定义 HTTP 和 WebSocket 消息的处理行为:

circe-auth/src/singletons/user_defined_functions.cpp
circe-box/src/singletons/user_defined_functions.cpp