mirror of
https://github.com/giongto35/cloud-game.git
synced 2026-08-01 22:34:02 +00:00
Generate xIds on the worker's side
This commit is contained in:
parent
59c3d4a6c7
commit
fac6cc4495
5 changed files with 19 additions and 4 deletions
|
|
@ -98,7 +98,13 @@ func (s *Server) WSO(w http.ResponseWriter, r *http.Request) {
|
|||
// Create a workerClient instance
|
||||
wc := NewWorkerClient(c, workerID)
|
||||
wc.Println("Generated worker ID")
|
||||
wc.Id = xid.New()
|
||||
if connRt.Xid != "" {
|
||||
if wc.Id, err = xid.FromString(connRt.Xid); err != nil {
|
||||
wc.Id = xid.New()
|
||||
}
|
||||
} else {
|
||||
wc.Id = xid.New()
|
||||
}
|
||||
wc.Addr = connRt.Addr
|
||||
wc.Zone = connRt.Zone
|
||||
wc.PingServer = connRt.PingURL
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ type ConnectionRequest struct {
|
|||
Port string `json:"port,omitempty"`
|
||||
Tag string `json:"tag,omitempty"`
|
||||
Zone string `json:"zone,omitempty"`
|
||||
Xid string `json:"xid,omitempty"`
|
||||
}
|
||||
|
||||
type GetServerListRequest struct{}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ import (
|
|||
"github.com/giongto35/cloud-game/v2/pkg/storage"
|
||||
"github.com/giongto35/cloud-game/v2/pkg/webrtc"
|
||||
"github.com/giongto35/cloud-game/v2/pkg/worker/room"
|
||||
"github.com/rs/xid"
|
||||
)
|
||||
|
||||
type Handler struct {
|
||||
|
|
@ -136,6 +137,7 @@ func MakeConnectionRequest(w worker.Worker, address string) (string, error) {
|
|||
Port: w.GetPort(address),
|
||||
Tag: w.Tag,
|
||||
Zone: w.Network.Zone,
|
||||
Xid: xid.New().String(),
|
||||
}
|
||||
rez, err := json.Marshal(req)
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -146,7 +146,7 @@
|
|||
|
||||
.server-list div {
|
||||
display: grid;
|
||||
grid-template-columns: .2fr 2.2fr 1fr .5fr .2fr;
|
||||
grid-template-columns: .2fr 1.2fr 1fr .5fr .2fr;
|
||||
justify-items: start;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -19,11 +19,11 @@ const workerManager = (() => {
|
|||
// renderer -- an arbitrary DOM output for the field
|
||||
list = {
|
||||
'n': {
|
||||
renderer: () => String(index.v()).padStart(2, '0')
|
||||
renderer: renderIdEl
|
||||
},
|
||||
'id': {
|
||||
caption: 'ID',
|
||||
renderer: (data) => data?.id ? data.xid : `${data.xid} [replicated] x ${data['replicas']}`
|
||||
renderer: (data) => data?.id ? data.xid : `${data.xid} x ${data['replicas']}`
|
||||
},
|
||||
'addr': {
|
||||
caption: 'Address',
|
||||
|
|
@ -88,6 +88,12 @@ const workerManager = (() => {
|
|||
socket.getServerList();
|
||||
}
|
||||
|
||||
function renderIdEl(server) {
|
||||
const id = String(index.v()).padStart(2, '0');
|
||||
const isActive = server?.id && state.lastId && state.lastId === server?.xid
|
||||
return `${(isActive ? '>' : '')}${id}`
|
||||
}
|
||||
|
||||
function renderServerChangeEl(server) {
|
||||
const handleServerChange = (e) => {
|
||||
e.preventDefault();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue