示例#1
0
 public IEnumerator Connect()
 {
     websocket = new WebSocketSharp.WebSocket(uri.ToString());
     if (!String.IsNullOrEmpty(accessToken))
     {
         websocket.SetCredentials("token", accessToken, true);
     }
     websocket.OnMessage += (sender, e) =>
     {
         if (capacity == 0 || events.Count < capacity)
         {
             lock (events)
             {
                 events.Enqueue(e.RawData);
             }
         }
         else
         {
             numDroppedEvents++;
         }
     };
     websocket.OnOpen += (sender, e) =>
     {
         isConnected = true;
     };
     websocket.OnClose += (sender, e) =>
     {
         isConnected = false;
         if (!e.WasClean)
         {
             error = e.Reason;
         }
     };
     websocket.OnError += (sender, e) =>
     {
         isConnected = false;
         error       = e.Message;
     };
     websocket.ConnectAsync();
     while (!isConnected && String.IsNullOrEmpty(error))
     {
         yield return(0);
     }
 }
示例#2
0
        static void Main(string[] args)
        {
            var str = "hello \n my friend\r\n\t";
            var enc = StompClient.StringHelper.Encode(str);

            Console.WriteLine(enc);
            Console.WriteLine(StompClient.StringHelper.Decode(enc));

            var url = "ws://192.168.151.224:8080/sodch-websocket/websocket";
            var ws  = new WebSocketSharp.WebSocket(url);

            ws.SetCredentials("-1", "1", true);
            var wstrans = new StompTransportWebsocketSharp.WebSocketTransport(ws);
            var client  = StompClient.Client.Over(wstrans);

            client.OnConnected += (_) => {
                client.Subscribe("/topic/pong");
                client.Send("/app/ping", "Jibril!");
            };
            client.OnMessage += Client_OnMessage;
            client.Connect();

            Console.ReadKey(false);
        }