private void SetupService(WebSocketServer server) { server.AddWebSocketService <WsService>("/msf", (service) => { service.IgnoreExtensions = true; service.SetServerSocket(this); var peer = new PeerWsServer(service); service.OnMessageEvent += (data) => { peer.HandleDataReceived(data, 0); }; ExecuteOnUpdate(() => { MstTimer.Instance.StartCoroutine(peer.SendDelayedMessages(initialSendMessageDelayTime)); OnPeerConnectedEvent?.Invoke(peer); }); peer.OnPeerDisconnectedEvent += OnPeerDisconnectedEvent; service.OnCloseEvent += reason => { peer.NotifyDisconnectEvent(); }; service.OnErrorEvent += reason => { Logs.Error(reason); peer.NotifyDisconnectEvent(); }; }); server.AddWebSocketService <EchoService>("/echo"); }
private void OnPeerConnectedEventHandle(IPeer peer) { // Check if max number of connections has been reached if (maxConnections > 0 && connectedPeers.Count >= maxConnections) { peer.Disconnect("The max number of connections has been reached"); return; } logger.Debug($"Client {peer.Id} connected to server. Total clients are: {connectedPeers.Count + 1}"); // Listen to messages peer.OnMessageReceivedEvent += OnMessageReceived; // Save the peer connectedPeers[peer.Id] = peer; // Create the security extension var extension = peer.AddExtension(new SecurityInfoPeerExtension()); // Set default permission level extension.PermissionLevel = 0; // Create a unique peer guid extension.UniqueGuid = Guid.NewGuid(); peersByGuidLookup[extension.UniqueGuid] = peer; // Invoke the event OnPeerConnectedEvent?.Invoke(peer); OnPeerConnected(peer); }
/// <summary> /// Setup all services used by server /// </summary> /// <param name="server"></param> private void SetupService(WebSocketServer server) { // Master server service server.AddWebSocketService <WsService>($"/app/{ApplicationKey}", (serviceForPeer) => { serviceForPeer.IgnoreExtensions = true; serviceForPeer.SetServerSocket(this); var peer = new WsServerPeer(serviceForPeer); serviceForPeer.OnOpenEvent += () => { Logs.Debug($"Connection for peer [{peer.Id}] is open"); }; serviceForPeer.OnMessageEvent += (data) => { peer.HandleDataReceived(data); }; ExecuteOnUpdate(() => { //MstTimer.Instance.StartCoroutine(peer.SendDelayedMessages(initialSendMessageDelayTime)); OnPeerConnectedEvent?.Invoke(peer); }); serviceForPeer.OnCloseEvent += reason => { OnPeerDisconnectedEvent?.Invoke(peer); peer.NotifyDisconnectEvent(); }; serviceForPeer.OnErrorEvent += reason => { Logs.Error(reason); peer.NotifyDisconnectEvent(); }; }); // Echo test service server.AddWebSocketService <EchoService>("/echo"); }
private void OnConnectedEventHandle(IPeer peer) { logger.Debug($"Client {peer.Id} connected to server. Total clients are: {connectedPeers.Count + 1}"); // Listen to messages peer.OnMessageReceivedEvent += OnMessageReceived; // Save the peer connectedPeers[peer.Id] = peer; // Create the security extension var extension = peer.AddExtension(new SecurityInfoPeerExtension()); // Set default permission level extension.PermissionLevel = 0; // Create a unique peer guid extension.UniqueGuid = Guid.NewGuid(); peersByGuidLookup[extension.UniqueGuid] = peer; // Invoke the event OnPeerConnectedEvent?.Invoke(peer); OnPeerConnected(peer); }