設(shè)計(jì)目的
游戲客戶端熱更需要,主要是代碼熱更啊掏,本篇簡(jiǎn)單給大家建立夏資源服的設(shè)計(jì)思路
代碼
package main
import (
"encoding/json"
"fmt"
"github.com/golang/glog"
"io/ioutil"
"log"
"net/http"
"os"
)
// 注意:Test會(huì)自己創(chuàng)建
func main() {
http.HandleFunc("/Test", binge)
os.Mkdir("Test", 0777)
http.Handle("/Test/", http.StripPrefix("/Test/", http.FileServer(http.Dir("Test"))))
err := http.ListenAndServe(":8080", nil)
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
// 更新地址
type UpdateST struct {
URL string
Flag bool
Fir_IM string
}
func binge(w http.ResponseWriter, req *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE")
w.Header().Set("Access-Control-Allow-Headers", "Action, Module")
w.Header().Set("Access-Control-Allow-Headers", "Content-Type,Authorization")
w.Header().Set("Access-Control-Max-Age", "1728000")
w.Header().Set("Access-Control-Allow-Credentials", "true")
w.Header().Add("Access-Control-Allow-Headers", "Content-Type")
w.Header().Set("content-type", "application/json")
req.ParseForm()
defer func() {
if err := recover(); err != nil {
glog.Info("%s", err)
req.Body.Close()
}
}()
s, _ := ioutil.ReadAll(req.Body)
fmt.Println("------------------------------", string(s))
glog.Info(string(s))
glog.Flush()
// 發(fā)送數(shù)據(jù)
data := &UpdateST{
URL: "",
Flag: true,
Fir_IM: "",
}
datamsgbak, _ := json.Marshal(data)
fmt.Fprintf(w, "%s", datamsgbak)
return
}
測(cè)試連接
// http://127.0.0.1:8080/Test/
注:Test為根目錄文件夾蕊温,Test文件夾下面放熱更文件跛蛋。