bool OnServerStatus(OSCMessage msg) { if (_serverAddress == null) { _serverAddress = msg.From; OSCManager.SendTo(new OSCMessage("/unity/client/show/join", _clientConfig.Id), msg.From); } return(true); }
// Update is called once per frame void Update() { OSCManager.Update(); if (_theShow != null) { if ((System.DateTime.Now - _lastStatusTime).TotalSeconds > 5) { OSCManager.SendToAll(new OSCMessage("/unity/server/status", null)); _lastStatusTime = System.DateTime.Now; } if (_timerSeconds > 0) { System.TimeSpan ts = (System.DateTime.Now - _timerMarker); if (ts.TotalSeconds >= _timerSeconds) { // Timer expired, go to the next step Show_ExecuteStep(); } else { SetSecondaryShowText((_timerSeconds - ts.TotalSeconds).ToString("N3")); } } // Bypass gesture with space bar if (_waitingForGesture != null) { if (Input.GetKeyDown(KeyCode.Space)) { Show_ExecuteStep(); } } } foreach (var kvp in _knownClients) { if (kvp.Value.Status == ClientInfo.ConnectionStatus.Normal && ((System.DateTime.Now - kvp.Value.LastSeenTime).TotalSeconds > 5)) { // This client hasn't been seen for 5 seconds kvp.Value.Status = ClientInfo.ConnectionStatus.NotResponding; } if (kvp.Value.Status == ClientInfo.ConnectionStatus.NotResponding && ((System.DateTime.Now - kvp.Value.RestartMsgTime).TotalSeconds > 2)) { // Its been more than 2 seconds since the restarter was notified, send it again OSCManager.SendTo(new OSCMessage("/unity/client/restart"), kvp.Value.IPAddress, RemoteManagerPort); kvp.Value.RestartMsgTime = System.DateTime.Now; } } }
bool OnJoinShow(OSCMessage msg) { int clientId = -1; if (msg.Args != null && msg.Args.Length > 0) { clientId = (int)msg.Args[0]; } if (clientId >= 0) { if (!_knownClients.ContainsKey(clientId)) { _knownClients[clientId] = new ClientInfo(clientId, msg.From); } _knownClients[clientId].MarkLastSeen(); _knownClients[clientId].IPAddress = msg.From; } // This client is just joining right now, send them everything from the last scene load up until the current step for (int i = _lastSceneMarker; i < _theShow.currentEventGroupIndex; i++) { EventGroup eg = _theShow.eventGroups[i]; foreach (Event evt in eg.events) { switch (evt.action) { case "loadScene": Debug.LogFormat("SHOW - Sending Loading scene: {0} to client: ({2}){1} ", evt.arg1, msg.From, clientId); _lastSceneMarker = _theShow.currentEventGroupIndex - 1; OSCManager.SendTo(new OSCMessage("/unity/server/show/loadScene", evt.arg1), msg.From); break; case "showObject": Debug.LogFormat("SHOW - Sending showObject: {0} to cleint: ({2}){1} ", evt.arg1, msg.From, clientId); OSCManager.SendTo(new OSCMessage("/unity/server/show/showObject", evt.arg1), msg.From); break; case "hideObject": Debug.LogFormat("SHOW - Sending hideObject: {0} to cleint: ({2}){1} ", evt.arg1, msg.From, clientId); OSCManager.SendTo(new OSCMessage("/unity/server/show/hideObject", evt.arg1), msg.From); break; } } } return(true); }
public bool OnRestartClient(OSCMessage msg) { _restartRequested = true; OSCManager.SendTo(new OSCMessage("/unity/client/restarting"), msg.From, 9876); return(true); }