9d47874ae3
* fix bug * updata UI * 0.3.2 ### Added - [Files] Files can now be selected multiple files and downloaded, deleted, moved, etc. - [Apps] Support to modify the application opening address.([#204](https://github.com/IceWhaleTech/CasaOS/issues/204)) ### Changed - [Apps] Hide the display of non-essential environment variables in the application. - [System] Network, disk, cpu, memory, etc. information is modified to be pushed via socket. - [System] Optimize opening speed.([#214](https://github.com/IceWhaleTech/CasaOS/issues/214)) ### Fixed - [System] Fixed the problem that sync data cannot submit the device ID ([#68](https://github.com/IceWhaleTech/CasaOS/issues/68)) - [Files] Fixed the code editor center alignment display problem.([#210](https://github.com/IceWhaleTech/CasaOS/issues/210)) - [Files] Fixed the problem of wrong name when downloading files.([#240](https://github.com/IceWhaleTech/CasaOS/issues/240)) - [System] Fixed the network display as a negative number problem.([#224](https://github.com/IceWhaleTech/CasaOS/issues/224)) * Modify log help class * Fix some bugs in 0.3.2 * Solve the operation file queue problem * Exclude web folders * update UI * add cancel file operate * Update UI * Merge sockets to transfer data * Conflict Resolution
60 lines
1.6 KiB
Go
60 lines
1.6 KiB
Go
/*
|
|
* @Author: LinkLeong link@icewhale.com
|
|
* @Date: 2022-05-23 17:18:56
|
|
* @LastEditors: LinkLeong
|
|
* @LastEditTime: 2022-06-09 21:48:10
|
|
* @FilePath: /CasaOS/route/socket.go
|
|
* @Description:
|
|
* @Website: https://www.casaos.io
|
|
* Copyright (c) 2022 by icewhale, All Rights Reserved.
|
|
*/
|
|
package route
|
|
|
|
import (
|
|
"strconv"
|
|
"time"
|
|
|
|
"github.com/IceWhaleTech/CasaOS/model/notify"
|
|
"github.com/IceWhaleTech/CasaOS/pkg/config"
|
|
"github.com/IceWhaleTech/CasaOS/pkg/utils/port"
|
|
"github.com/IceWhaleTech/CasaOS/service"
|
|
f "github.com/ambelovsky/gosf"
|
|
)
|
|
|
|
func SocketInit(msg chan notify.Message) {
|
|
|
|
// set socket port
|
|
socketPort := 0
|
|
if len(config.ServerInfo.SocketPort) == 0 {
|
|
socketPort, _ = port.GetAvailablePort("tcp")
|
|
config.ServerInfo.SocketPort = strconv.Itoa(socketPort)
|
|
config.Cfg.Section("server").Key("SocketPort").SetValue(strconv.Itoa(socketPort))
|
|
config.Cfg.SaveTo(config.SystemConfigInfo.ConfigPath)
|
|
} else {
|
|
socketPort, _ = strconv.Atoi(config.ServerInfo.SocketPort)
|
|
if !port.IsPortAvailable(socketPort, "tcp") {
|
|
socketPort, _ := port.GetAvailablePort("tcp")
|
|
config.ServerInfo.SocketPort = strconv.Itoa(socketPort)
|
|
config.Cfg.Section("server").Key("SocketPort").SetValue(strconv.Itoa(socketPort))
|
|
config.Cfg.SaveTo(config.SystemConfigInfo.ConfigPath)
|
|
}
|
|
}
|
|
|
|
f.OnConnect(func(c *f.Client, request *f.Request) {
|
|
service.ClientCount += 1
|
|
})
|
|
f.OnDisconnect(func(c *f.Client, request *f.Request) {
|
|
service.ClientCount -= 1
|
|
})
|
|
go func(msg chan notify.Message) {
|
|
for v := range msg {
|
|
f.Broadcast("", v.Path, &v.Msg)
|
|
time.Sleep(time.Millisecond * 100)
|
|
}
|
|
|
|
}(msg)
|
|
|
|
f.Startup(map[string]interface{}{
|
|
"port": socketPort})
|
|
|
|
}
|