48 lines
827 B
Go
48 lines
827 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"github.com/gorilla/websocket"
|
||
|
"github.com/ssgo/log"
|
||
|
"github.com/ssgo/s"
|
||
|
)
|
||
|
|
||
|
var conn *websocket.Conn
|
||
|
|
||
|
type Message struct {
|
||
|
Type string
|
||
|
Url string
|
||
|
ImageData string
|
||
|
Text string
|
||
|
}
|
||
|
|
||
|
func main() {
|
||
|
s.Config.Listen = "9000"
|
||
|
s.Static("/", "../web/")
|
||
|
s.RegisterSimpleWebsocket(0, "/socket", func(connect *websocket.Conn) {
|
||
|
log.DefaultLogger.Info("Socket connected")
|
||
|
conn = connect
|
||
|
for {
|
||
|
data := &Message{}
|
||
|
err := conn.ReadJSON(data)
|
||
|
if err != nil {
|
||
|
log.DefaultLogger.Error("Read WS error", "err", err.Error())
|
||
|
return
|
||
|
}
|
||
|
go onMessage(data)
|
||
|
}
|
||
|
}, "")
|
||
|
s.Start()
|
||
|
}
|
||
|
|
||
|
func onMessage(data *Message) {
|
||
|
switch data.Type {
|
||
|
case "checkPhishing":
|
||
|
checkUrl(data.Url)
|
||
|
case "checkImage":
|
||
|
checkImg(data.ImageData)
|
||
|
case "checkScript":
|
||
|
checkText(data.Text)
|
||
|
|
||
|
}
|
||
|
}
|