Advertisement
Guest User

Untitled

a guest
Oct 9th, 2016
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.17 KB | None | 0 0
  1. Program.cs
  2.  
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using SuperWebSocket;
  8. using SuperSocket.SocketBase;
  9.  
  10. namespace WebSocketsServerDemo
  11. {
  12.     class Program
  13.     {
  14.         static void Main(string[] args)
  15.         {
  16.             Server myServer = new Server();
  17.  
  18.             myServer.Setup();
  19.             myServer.Start();
  20.         }
  21.     }
  22. }
  23.  
  24. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  25. Server.cs
  26.  
  27. using System;
  28. using System.Collections.Generic;
  29. using System.Linq;
  30. using System.Text;
  31. using SuperWebSocket;
  32. using SuperSocket.SocketBase;
  33.  
  34. namespace WebSocketsServerDemo
  35. {
  36.     class Server
  37.     {
  38.         private WebSocketServer appServer;
  39.  
  40.         public void Setup()
  41.         {
  42.             Console.WriteLine("Press any key to start the WebSocketServer!");
  43.             Console.ReadKey();
  44.             Console.WriteLine();
  45.  
  46.             appServer = new WebSocketServer();
  47.  
  48.  
  49.             if (!appServer.Setup(8001)) //Setup with listening port
  50.             {
  51.                 Console.WriteLine("Failed to setup!");
  52.                 Console.ReadKey();
  53.                 return;
  54.             }
  55.  
  56.             appServer.NewSessionConnected   += new SessionHandler<WebSocketSession>(appServer_NewSessionConnected);
  57.             appServer.SessionClosed         += new SessionHandler<WebSocketSession, CloseReason>(appServer_SessionClosed);
  58.             appServer.NewMessageReceived    += new SessionHandler<WebSocketSession, string>(appServer_NewMessageReceived);
  59.  
  60.             Console.WriteLine();
  61.         }
  62.        
  63.         public void Start()
  64.         {
  65.             if (!appServer.Start())
  66.             {
  67.                 Console.WriteLine("Failed to start!");
  68.                 Console.ReadKey();
  69.                 return;
  70.             }
  71.  
  72.             Console.WriteLine("The server started successfully! Press any key to see application options.");
  73.             Console.ReadKey();
  74.  
  75.             ShowAvailableOptions();
  76.  
  77.             char keyStroked;
  78.  
  79.             while (true)
  80.             {
  81.                 keyStroked = Console.ReadKey().KeyChar;
  82.  
  83.                 if (keyStroked.Equals('q'))
  84.                 {
  85.                     Stop();
  86.                     return;
  87.                 }
  88.  
  89.                 if (keyStroked.Equals('s'))
  90.                 {
  91.                     Console.WriteLine();
  92.                     Console.WriteLine("Put here your message to clients: ");
  93.  
  94.                     string message = Console.ReadLine();
  95.  
  96.                     foreach (WebSocketSession session in appServer.GetAllSessions())
  97.                     {
  98.                         session.Send("Message to client: " + message);
  99.                     }
  100.                 }
  101.                
  102.                 ShowAvailableOptions();
  103.                 continue;
  104.             }
  105.         }
  106.  
  107.         public void Stop()
  108.         {
  109.             appServer.Stop();
  110.  
  111.             Console.WriteLine();
  112.             Console.WriteLine("The server was stopped!");
  113.         }
  114.  
  115.         public void ShowAvailableOptions()
  116.         {
  117.             Console.WriteLine();
  118.             Console.WriteLine("Available options: ");
  119.             Console.WriteLine("Press 'q' key to stop the server.");
  120.             Console.WriteLine("Press 's' key to send message to client.");
  121.         }
  122.  
  123.         private void appServer_NewMessageReceived(WebSocketSession session, string message)
  124.         {
  125.             Console.WriteLine("Client said: " + message);
  126.             //Send the received message back
  127.             session.Send("Server responded back: " + message);
  128.         }
  129.  
  130.         private void appServer_NewSessionConnected(WebSocketSession session)
  131.         {
  132.             Console.WriteLine();
  133.             Console.WriteLine("New session connected! Sessions counter: " + appServer.SessionCount);
  134.             session.Send("Hello new client!");
  135.         }
  136.  
  137.         private void appServer_SessionClosed(WebSocketSession session, CloseReason value)
  138.         {
  139.             Console.WriteLine();
  140.             Console.WriteLine("Client disconnected! Sessions counter: " + appServer.SessionCount);
  141.         }
  142.     }
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement