mirror of
https://github.com/yangjian102621/geekai.git
synced 2025-09-17 16:56:38 +08:00
35 lines
723 B
Go
35 lines
723 B
Go
package server
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/gorilla/websocket"
|
|
"net/http"
|
|
)
|
|
|
|
func (s *Server) Chat(c *gin.Context) {
|
|
ws, err := (&websocket.Upgrader{CheckOrigin: func(r *http.Request) bool { return true }}).Upgrade(c.Writer, c.Request, nil)
|
|
if err != nil {
|
|
logger.Fatal(err)
|
|
return
|
|
}
|
|
logger.Infof("New websocket connected, IP: %s", c.Request.RemoteAddr)
|
|
client := NewWsClient(ws)
|
|
go func() {
|
|
for {
|
|
_, message, err := client.Receive()
|
|
if err != nil {
|
|
logger.Error(err)
|
|
client.Close()
|
|
return
|
|
}
|
|
|
|
// TODO: 接受消息,调用 ChatGPT 返回消息
|
|
logger.Info(string(message))
|
|
err = client.Send(message)
|
|
if err != nil {
|
|
logger.Error(err)
|
|
}
|
|
}
|
|
}()
|
|
}
|