You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.1 KiB
Go
52 lines
1.1 KiB
Go
//go:build server || (!server && !client)
|
|
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"time"
|
|
|
|
"github.com/noahlann/nnet/pkg/nnet"
|
|
)
|
|
|
|
func main() {
|
|
// 创建服务器配置
|
|
cfg := &nnet.Config{
|
|
Addr: "tcp://127.0.0.1:8888",
|
|
}
|
|
|
|
// 创建服务器
|
|
server, err := nnet.NewServer(cfg)
|
|
if err != nil {
|
|
log.Fatalf("Failed to create server: %v", err)
|
|
}
|
|
|
|
// 注册路由
|
|
server.Router().RegisterString("echo", func(ctx nnet.Context) error {
|
|
// 读取请求数据
|
|
requestData := ctx.Request().Raw()
|
|
message := string(requestData)
|
|
|
|
// 回显消息
|
|
response := fmt.Sprintf("Echo: %s\n", message)
|
|
return ctx.Response().WriteString(response)
|
|
})
|
|
|
|
// 注册路由:计算请求处理时间
|
|
server.Router().RegisterString("time", func(ctx nnet.Context) error {
|
|
now := time.Now()
|
|
response := fmt.Sprintf("Current time: %s\n", now.Format(time.RFC3339))
|
|
return ctx.Response().WriteString(response)
|
|
})
|
|
|
|
// 启动服务器
|
|
log.Println("Starting server on tcp://127.0.0.1:8888")
|
|
if err := server.Start(); err != nil {
|
|
log.Fatalf("Failed to start server: %v", err)
|
|
}
|
|
|
|
// 等待中断信号
|
|
select {}
|
|
}
|