AQI WebSocket框架

高并发 · 低延迟 · 易集成

十分钟为你的gin框架提供WebSocket能力,提供简洁的API和丰富的功能特性。

100K+
并发连接
<2ms
响应延迟
99.9%
可用性

核心特性

极致性能

基于事件驱动架构,支持百万级并发连接,内存占用极低,CPU使用率优化。

  • 零拷贝数据传输
  • 智能连接池管理
  • 自适应负载均衡
🔧

简单易用

提供直观的API设计,支持多种编程语言,快速集成到现有项目中。

  • RESTful风格API
  • 完整的SDK支持
  • 详细的开发文档
🛡️

安全可靠

内置安全机制,支持SSL/TLS加密,提供完善的监控和日志系统。

  • 端到端加密
  • 访问控制机制
  • 实时监控告警
🔄

高可扩展

支持水平扩展,提供插件机制,可根据业务需求灵活定制功能。

  • 集群部署支持
  • 插件化架构
  • 热更新机制

在线演示

WebSocket连接测试

状态: 未连接

发送消息

实时日志

等待连接...
当前连接数: 0
平均延迟: 0ms
消息吞吐: 0/s

快速开始

// 安装cli命令
go install github.com/wonli/aqi/cmd/aqi@latest   

// 新建项目
aqi new a1

// 初始化
cd a1 && go mod tidy

// 运行(第一次运行自动生成config-dev.yaml配置文件)
go run main.go api

// 编译,支持window,linux,darwin(mac)交叉编译,详见Makefile
make darwin
// golang
func main() {
	app := aqi.Init(
		aqi.ConfigFile("config.yaml"),
		aqi.HttpServer("Aqi", "port"),
	)

	engine := gin.Default()
	engine.GET("/", func(c *gin.Context) {
		c.String(http.StatusOK, "Hi aqi!")
	})

	// Websocket
	engine.GET("/ws", func(c *gin.Context) {
		ws.HttpHandler(c.Writer, c.Request)
	})

	// Router
	wsr := ws.NewRouter()
	wsr.Add("hi", func(a *ws.Context) {
		a.Send(ws.H{
			"hi": time.Now(),
		})
	})

	app.WithHttpServer(engine)
	app.Start()
}
// JavaScript客户端连接
import { onConnect, onDisconnect, onReconnectLimit, onRequest, onResponse, onConnectError } from './modules/event'
import Ws from './wslib'

import sys from './modules/sys'
import chat from './modules/chat'
import job from './modules/job'

const dispatcher =   {
  onConnect,
  onDisconnect,
  onRequest,
  onResponse,
  onReconnectLimit,
  onConnectError,
  reconnectInterval: 5000,
  reconnectLimit: 200,
  dispatcher: () => {
    return { sys,chat,job }
  }
}

const wsclient = new Ws("ws://localhost:2015", dispatcher);
export default wsclient;

// config_dev.yaml
port: 2015
devMode: true
jwtSecurity: 6a63dd4345506823e51f4f36f99b80ea
jwtLifetime: 30d
log:
  logFile: error.log
  logPath: logs
  maxSize: 200
  maxBackups: 3
  maxAge: 30
  compress: true
  useCaller: true
redis:
  store:
    addr: 127.0.0.1:6379
    username: ""
    pwd: ""
    db: 1
    minIdleConns: 10
    idleTimeout: 5m0s                            

技术架构

应用层

业务逻辑
消息路由
权限控制

框架层

AQI Core
连接管理
事件调度

传输层

WebSocket
TCP/UDP
HTTP/2

基础设施

Redis集群
负载均衡
监控系统