Exemple #1
0
        private void OnMessageReceived(object sender, WebsocketMessageReceivedEventArgs e)
        {
            var element = XElement.Parse(e.Message.TextContent);

            if (element.Name.LocalName == "open")
            {
                // XMPP handshake
                XNamespace xmlns    = "urn:ietf:params:xml:ns:xmpp-framing";
                XNamespace xml      = "xml";
                var        response = new XElement(
                    xmlns + "open",
                    new XAttribute("xmlns", "urn:ietf:params:xml:ns:xmpp-framing"),
                    new XAttribute("from", ""),
                    new XAttribute("id", "xmpp_id_yolo"),
                    new XAttribute(xml + "lang", "en"),
                    new XAttribute("version", "1.0")
                    );
                SendXmppMessage(e.Socket, response);

                _clients.Add(e.Socket.RemoteEndPoint, new XmppClient(this, e.Socket));
                Log.Information("New XMPP client {Client}", e.Socket.RemoteEndPoint);
            }
            else
            {
                _clients[e.Socket.RemoteEndPoint].HandleMessage(element, out XElement response);
                if (response != null)
                {
                    SendXmppMessage(e.Socket, response);
                }
            }
        }
Exemple #2
0
 private void OnMessageReceived(object sender, WebsocketMessageReceivedEventArgs e)
 {
     if (e.Message.TextContent == "ping")
     {
         _server.SendMessage(e.Socket, MessageType.Text, Encoding.UTF8.GetBytes("pong"));
         Log.Information("[Matchmaker] Client sent 'ping'. Responded with 'pong'.");
     }
 }