forked from lxh/go-wxhelper
🆕 支持转发消息到外部服务(暂时只支持socket)
This commit is contained in:
parent
81be5a0f70
commit
63d50b815c
@ -6,6 +6,9 @@ wechat:
|
|||||||
autoSetCallback: false
|
autoSetCallback: false
|
||||||
# 回调IP,如果是Docker运行,本参数必填,如果Docker修改了映射,格式为 ip:port
|
# 回调IP,如果是Docker运行,本参数必填,如果Docker修改了映射,格式为 ip:port
|
||||||
callback: 10.0.0.51
|
callback: 10.0.0.51
|
||||||
|
# 转发到其他地址
|
||||||
|
forward:
|
||||||
|
- 10.0.0.247:4299
|
||||||
|
|
||||||
# 数据库
|
# 数据库
|
||||||
mysql:
|
mysql:
|
||||||
@ -39,3 +42,9 @@ ai:
|
|||||||
baseUrl: https://sxxx
|
baseUrl: https://sxxx
|
||||||
# 人设
|
# 人设
|
||||||
personality: 你的名字叫张三,你是一个百科机器人,你的爱好是看电影,你的性格是开朗的,你的专长是讲故事,你的梦想是当一名童话故事作家。你对政治没有一点儿兴趣,也不会讨论任何与政治相关的话题,你甚至可以拒绝回答这一类话题。
|
personality: 你的名字叫张三,你是一个百科机器人,你的爱好是看电影,你的性格是开朗的,你的专长是讲故事,你的梦想是当一名童话故事作家。你对政治没有一点儿兴趣,也不会讨论任何与政治相关的话题,你甚至可以拒绝回答这一类话题。
|
||||||
|
|
||||||
|
# 资源配置(这玩意儿是机器人那个机器上的smb文件夹)
|
||||||
|
# 暂时没用 - 2023-12-6
|
||||||
|
resource:
|
||||||
|
localPath: /files
|
||||||
|
remotePath: D:\Share\
|
||||||
|
@ -8,6 +8,7 @@ type wechat struct {
|
|||||||
Host string `json:"host" yaml:"host"` // 接口地址
|
Host string `json:"host" yaml:"host"` // 接口地址
|
||||||
AutoSetCallback bool `json:"autoSetCallback" yaml:"autoSetCallback"` // 是否自动设置回调地址
|
AutoSetCallback bool `json:"autoSetCallback" yaml:"autoSetCallback"` // 是否自动设置回调地址
|
||||||
Callback string `json:"callback" yaml:"callback"` // 回调地址
|
Callback string `json:"callback" yaml:"callback"` // 回调地址
|
||||||
|
Forward []string `json:"forward" yaml:"forward"` // 转发地址
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check
|
// Check
|
||||||
|
25
tcpserver/forward.go
Normal file
25
tcpserver/forward.go
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package tcpserver
|
||||||
|
|
||||||
|
import (
|
||||||
|
"go-wechat/config"
|
||||||
|
"log"
|
||||||
|
"net"
|
||||||
|
)
|
||||||
|
|
||||||
|
// forward
|
||||||
|
// @description: 转发消息
|
||||||
|
func forward(msg []byte) {
|
||||||
|
// 使用socket转发消息
|
||||||
|
for _, s := range config.Conf.Wechat.Forward {
|
||||||
|
conn, err := net.Dial("tcp", s)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("转发消息失败,错误信息: %v", err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
_, err = conn.Write(msg)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("转发消息失败,错误信息: %v", err)
|
||||||
|
}
|
||||||
|
_ = conn.Close()
|
||||||
|
}
|
||||||
|
}
|
@ -2,6 +2,7 @@ package tcpserver
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"go-wechat/config"
|
||||||
"go-wechat/handler"
|
"go-wechat/handler"
|
||||||
"io"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
@ -24,6 +25,11 @@ func process(conn net.Conn) {
|
|||||||
}
|
}
|
||||||
log.Printf("[%s]数据长度: %d", conn.RemoteAddr(), buf.Len())
|
log.Printf("[%s]数据长度: %d", conn.RemoteAddr(), buf.Len())
|
||||||
go handler.Parse(conn.RemoteAddr(), buf.Bytes())
|
go handler.Parse(conn.RemoteAddr(), buf.Bytes())
|
||||||
|
|
||||||
|
// 转发到其他地方去
|
||||||
|
if len(config.Conf.Wechat.Forward) > 0 {
|
||||||
|
go forward(buf.Bytes())
|
||||||
|
}
|
||||||
// 将接受到的数据返回给客户端
|
// 将接受到的数据返回给客户端
|
||||||
if _, err := conn.Write([]byte("200 OK")); err != nil {
|
if _, err := conn.Write([]byte("200 OK")); err != nil {
|
||||||
log.Printf("[%s]返回数据失败,错误信息: %v", conn.RemoteAddr(), err)
|
log.Printf("[%s]返回数据失败,错误信息: %v", conn.RemoteAddr(), err)
|
||||||
|
Loading…
Reference in New Issue
Block a user