Mise à jours du App config

This commit is contained in:
Benjamin Lejeune 2022-02-26 18:08:52 +01:00
parent dfd6096898
commit c379c15932
5 changed files with 24 additions and 12 deletions

View File

@ -36,12 +36,12 @@ func main() {
eraseFileRule := readers.CreateEraseFileRule("^ERASEFILE ([A-Za-z0-9.]{50,200})\r\n$")
protocolRepository.AddReader(&eraseFileRule)
multicast := network.CreateClientMulticast(appConfig.MulticastAddress, time.Duration(appConfig.MulticastSecond), protocolRepository)
multicast := network.CreateClientMulticast(appConfig.MulticastAddress, appConfig.Domain, appConfig.UnicastPort, time.Duration(appConfig.MulticastSecond), protocolRepository)
go multicast.Run()
requestManager := managers.RequestManager{Repository: protocolRepository}
server := network.ServerUnicast{Network: "tcp", Address: appConfig.UnicastAddress, ReqManager: &requestManager}
server := network.ServerUnicast{Network: "tcp", Port: appConfig.UnicastPort, ReqManager: &requestManager}
server.Run()
}

View File

@ -2,12 +2,15 @@ package config
// AppConfig Contient toute la configuration du server
type AppConfig struct {
// multicastAddress Contient l'adresse multicast du FileFrontEnd (adresse:port)
// multicastAddress Contient l'adresse multicast du FileFrontEnd
MulticastAddress string `json:"multicastAddress"`
// multicastSecond Contient le nombre de seconde entre chaque annonce
MulticastSecond int `json:"multicastSecond"`
// unicastAddress Contient l'adresse unicast auquel le FileFrontEnd se connecte (adresse:port)
UnicastAddress string `json:"unicastAddress"`
// domain Domain du StorBackEnd
Domain string `json:"domain"`
// unicastPort Contient le port unicast auquel le FileFrontEnd se connecte
UnicastPort int `json:"unicastPort"`
}

View File

@ -3,14 +3,17 @@ package network
import (
"StorBackEnd/pkg/protocol/repository"
"StorBackEnd/pkg/protocol/rules/writers"
"fmt"
"net"
"time"
)
// CreateClientMulticast Méthode de construction d'un instance de la stuct ClientMulticast
func CreateClientMulticast(address string, second time.Duration, repository *repository.ProtocolRepository) ClientMulticast {
func CreateClientMulticast(address string, domain string, port int, second time.Duration, repository *repository.ProtocolRepository) ClientMulticast {
return ClientMulticast{
address: address,
domain: domain,
port: port,
second: second,
repository: repository,
}
@ -19,9 +22,15 @@ func CreateClientMulticast(address string, second time.Duration, repository *rep
// ClientMulticast Cette structure représente une communication en multicast.
// TODO : Prévoir une fermeture de la connection (con.Close())
type ClientMulticast struct {
// address Adresse de multicast (address:port)
// address Adresse de multicast
address string
// address Domain de du StorBackEnd
domain string
// port Port de connexion en unicast
port int
// second Temps en seconde entre chaque ping
second time.Duration
@ -41,8 +50,7 @@ func (cMult ClientMulticast) Run() {
return
}
// Fake test
cmd, correct := cMult.repository.ExecuteWriter(writers.HelloRuleName, "benja", "5078")
cmd, correct := cMult.repository.ExecuteWriter(writers.HelloRuleName, cMult.domain, fmt.Sprintf("%d", cMult.port))
if !correct {
println("[ClientMulticast] Hello rule isn't correct (" + cmd + ")")
return

View File

@ -9,13 +9,13 @@ import (
type ServerUnicast struct {
Network string
Address string
Port int
ReqManager *managers.RequestManager
}
func (server ServerUnicast) Run() {
listen, err := net.Listen(server.Network, server.Address) // "tcp", "0.0.0.0:58000"
listen, err := net.Listen(server.Network, fmt.Sprintf("0.0.0.0:%d", server.Port)) // "tcp", "0.0.0.0:58000"
if err != nil {
fmt.Printf("Can't start server : %s\n", err)

View File

@ -1,5 +1,6 @@
{
"multicastAddress" : "226.66.66.1:42500",
"multicastSecond" : 10,
"unicastAddress" : "0.0.0.0:58000"
"domain" : "benjamin",
"unicastPort" : 58000
}