/// <summary> /// Forces the Peer to disconnect, raising the OnDisconnect event in the process. /// This method is also called when a peer disconnects or loses connection normally. /// </summary> public void DisconnectWithMessage(byte disconnectMsgIdentifier) { NetworkWriter writer = new NetworkWriter(); writer.StartMessage(ScopeMsgType.DisconnectMessage); writer.Write(disconnectMsgIdentifier); writer.FinishMessage(); ScopeUtils.SendNetworkWriter(writer, this); // trigger early disconnection ForceDisconnect(false); }
/// <summary> /// Sends instructions to reconnect to the specified host. /// </summary> /// <param name="hostname">IP Address or Host.</param> /// <param name="port">Server port.</param> public void Redirect(string hostname, int port) { NetworkWriter writer = new NetworkWriter(); writer.StartMessage(ScopeMsgType.RedirectMessage); writer.Write(hostname); writer.Write(port); writer.FinishMessage(); ScopeUtils.SendNetworkWriter(writer, this); // trigger early disconnection ForceDisconnect(false); }
void INetworkSender.PrepareAndSendWriter(NetworkWriter writer) { writer.FinishMessage(); #if UNITY_EDITOR && SCOPE_DEBUGGING // log outgoing signal ScopeDebugger.AddOutgoingSignal(this, typeof(TClientScope), new NetworkReader(writer)); #endif if (!IsTargetGroup) { ScopeUtils.SendNetworkWriter(writer, TargetPeer); } else { ScopeUtils.SendNetworkWriter(writer, TargetPeerGroup); } }