Przeglądaj źródła

feat:完成保存即协同

1.TODO init userId参数替换
v1.0.4
yuan_rh 4 lat temu
rodzic
commit
57f72096ab
3 zmienionych plików z 429 dodań i 226 usunięć
  1. +402
    -199
      handle/handle.go
  2. +15
    -16
      main.go
  3. +12
    -11
      websocket/websocket.go

+ 402
- 199
handle/handle.go
Plik diff jest za duży
Wyświetl plik


+ 15
- 16
main.go Wyświetl plik

@@ -1,7 +1,6 @@
package main

import (
"fmt"
_ "fmt"
"fts/config"
"fts/websocket"
@@ -55,7 +54,7 @@ func main() {
select {
case ev := <-config.GobalWatch.Events:
{
log.Println(ev.Op.String()+":"+ev.Name)
//log.Println(ev.Op.String()+":"+ev.Name)
if filepath.Ext(ev.Name)==".commit"{
continue
}
@@ -64,29 +63,29 @@ func main() {
}

if ev.Op&fsnotify.Create == fsnotify.Create {
fmt.Println("创建文件 : ", ev.Name);
//fmt.Println("创建文件 : ", ev.Name);
//这里获取新创建文件的信息,如果是目录,则加入监控中
fi, err := os.Stat(ev.Name);
if err == nil && fi.IsDir() {
config.GobalWatch.Add(ev.Name);
fmt.Println("添加监控 : ", ev.Name);
//fmt.Println("添加监控 : ", ev.Name);
}else{
filePath :=ev.Name
abs := strings.Replace(filePath,config.LocalWorkSpaceDir,"",1)
param :=strings.Split(abs,"\\")
key :=config.LocalWorkSpaceDir+param[0]+"\\"+param[1]
log.Println("chan-->"+key)
//log.Println("chan-->"+key)
ch :=config.GobalWatchChannelMap[key]
if ch==nil{
continue
}
log.Println("chan-->"+("create"+";"+ev.Name))
//log.Println("chan-->"+("create"+";"+ev.Name))
ch <- ("create"+";"+ev.Name)

}
}
if ev.Op&fsnotify.Write == fsnotify.Write {
fmt.Println("写入文件 : ", ev.Name);
//fmt.Println("写入文件 : ", ev.Name);
//判断文件,发送事件
fi, err := os.Stat(ev.Name);
if err == nil && !fi.IsDir() {
@@ -94,23 +93,23 @@ func main() {
abs := strings.Replace(filePath,config.LocalWorkSpaceDir,"",1)
param :=strings.Split(abs,"\\")
key :=config.LocalWorkSpaceDir+param[0]+"\\"+param[1]
log.Println("chan-->"+key)
//log.Println("chan-->"+key)
ch :=config.GobalWatchChannelMap[key]
if ch==nil{
continue
}
log.Println("chan-->"+("write"+";"+ev.Name))
log.Println(ch)
//log.Println("chan-->"+("write"+";"+ev.Name))
//log.Println(ch)
ch <- ("write"+";"+ev.Name)
}
}
if ev.Op&fsnotify.Remove == fsnotify.Remove {
fmt.Println("删除文件 : ", ev.Name);
//fmt.Println("删除文件 : ", ev.Name);
//如果删除文件是目录,则移除监控
fi, err := os.Stat(ev.Name);
if err == nil && fi.IsDir() {
config.GobalWatch.Remove(ev.Name);
fmt.Println("删除监控 : ", ev.Name);
//fmt.Println("删除监控 : ", ev.Name);
}else{
filePath :=ev.Name
abs := strings.Replace(filePath,config.LocalWorkSpaceDir,"",1)
@@ -120,12 +119,12 @@ func main() {
if ch==nil{
continue
}
log.Println("chan-->"+("remove"+";"+ev.Name))
//log.Println("chan-->"+("remove"+";"+ev.Name))
ch <- ("remove"+";"+ev.Name)
}
}
if ev.Op&fsnotify.Rename == fsnotify.Rename {
fmt.Println("重命名文件 : ", ev.Name);
//fmt.Println("重命名文件 : ", ev.Name);
//如果重命名文件是目录,则移除监控
//注意这里无法使用os.Stat来判断是否是目录了
//因为重命名后,go已经无法找到原文件来获取信息了
@@ -133,12 +132,12 @@ func main() {
config.GobalWatch.Remove(ev.Name);
}
if ev.Op&fsnotify.Chmod == fsnotify.Chmod {
fmt.Println("修改权限 : ", ev.Name);
//fmt.Println("修改权限 : ", ev.Name);
}
}
case err := <-config.GobalWatch.Errors:
{
fmt.Println("error : ", err);
log.Printf("error : %v", err);
return;
}
}


+ 12
- 11
websocket/websocket.go Wyświetl plik

@@ -42,7 +42,7 @@ func UploadHandler(w http.ResponseWriter, r *http.Request) {
goto ERR
}
//发送数据,判断返回值是否报错
log.Println("param uploadHandler:"+string(data))
//log.Println("param uploadHandler:"+string(data))

params :=strings.Split(string(data),"|")
mil,_:=strconv.ParseBool(params[7])
@@ -81,7 +81,7 @@ func DownloadHandler(w http.ResponseWriter, r *http.Request) {
goto ERR
}
//发送数据,判断返回值是否报错
log.Println("param downloadHandler:"+string(data))
//log.Println("param downloadHandler:"+string(data))

params :=strings.Split(string(data),"|")
err := handle.DownCommand(conn,params[0],params[1],params[2],params[3])
@@ -120,10 +120,11 @@ func InitLocalWorkSpaceHandler(w http.ResponseWriter, r *http.Request) {
goto ERR
}
//发送数据,判断返回值是否报错
log.Println("param initLocalWorkSpaceHandler:"+string(data))
//log.Println("param initLocalWorkSpaceHandler:"+string(data))

params :=strings.Split(string(data),"|")
err := handle.InitLocalWorkSpace(conn,params[0],params[1])
//TODO userId
err := handle.InitLocalWorkSpace(conn,params[0],"367294106252087297",params[1])
if err!=nil{
log.Println(err)
goto ERR
@@ -159,7 +160,7 @@ func OpenFileWithHandler(w http.ResponseWriter, r *http.Request) {
goto ERR
}
//发送数据,判断返回值是否报错
log.Println("param OpenFileWithHandler:"+string(data))
//log.Println("param OpenFileWithHandler:"+string(data))

err := handle.OpenFileWith(string(data))
if err!=nil{
@@ -201,7 +202,7 @@ func CheckForUpdatesHandler(w http.ResponseWriter, r *http.Request) {
goto ERR
}
//发送数据,判断返回值是否报错
log.Println("param CheckForUpdatesHandler:"+string(data))
//log.Println("param CheckForUpdatesHandler:"+string(data))

err := handle.CheckForUpdates(string(data))
if err!=nil{
@@ -243,7 +244,7 @@ func InitClientConfigHandler(w http.ResponseWriter, r *http.Request) {
goto ERR
}
//发送数据,判断返回值是否报错
log.Println("param InitClientConfigHandler:"+string(data))
//log.Println("param InitClientConfigHandler:"+string(data))
params :=strings.Split(string(data),"|")
err := handle.InitClientConfig(params[0],params[1])
if err!=nil{
@@ -285,7 +286,7 @@ func GetFolderFileInfoHandler(w http.ResponseWriter, r *http.Request) {
goto ERR
}
//发送数据,判断返回值是否报错
log.Println("param GetFolderFileInfo:"+string(data))
//log.Println("param GetFolderFileInfo:"+string(data))

err := handle.GetFolderFileInfo(conn,string(data))
if err!=nil{
@@ -323,7 +324,7 @@ func EditCommitHistoryMilestoneHandler(w http.ResponseWriter, r *http.Request) {
goto ERR
}
//发送数据,判断返回值是否报错
log.Println("param EditCommitHistoryMilestoneHandler:"+string(data))
//log.Println("param EditCommitHistoryMilestoneHandler:"+string(data))
params := strings.Split(string(data),"|")
mil,_:=strconv.ParseBool(params[3])
hash,err := handle.EditCommitHistoryMilestoneHandler(params[0],params[1],params[2],mil)
@@ -370,7 +371,7 @@ func SubscriptionFileChangeHandler(w http.ResponseWriter, r *http.Request){
goto ERR
}
//发送数据,判断返回值是否报错
log.Println("param subscriptionFileChangeHandler:"+string(data))
//log.Println("param subscriptionFileChangeHandler:"+string(data))
err = handle.SubscriptionFileChange(conn,string(data))

if err != nil {
@@ -448,7 +449,7 @@ func QueryCommitHistoryHandler(w http.ResponseWriter, r *http.Request) {
//发送数据,判断返回值是否报错
//eg: 文件路径|历史版本文件Hash
dataString := string(data)
log.Println("param QueryCommitHistoryHandler:"+dataString)
//log.Println("param QueryCommitHistoryHandler:"+dataString)
params := strings.Split(dataString,"|")

dataList,err := handle.QueryCommitHistory(params[0],params[1])


Ładowanie…
Anuluj
Zapisz