Example #1
0
 public void Read (TProtocol iprot)
 {
   TField field;
   iprot.ReadStructBegin();
   while (true)
   {
     field = iprot.ReadFieldBegin();
     if (field.Type == TType.Stop) { 
       break;
     }
     switch (field.ID)
     {
       case 1:
         if (field.Type == TType.Struct) {
           Header = new Header();
           Header.Read(iprot);
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       case 2:
         if (field.Type == TType.I32) {
           Key = iprot.ReadI32();
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       default: 
         TProtocolUtil.Skip(iprot, field.Type);
         break;
     }
     iprot.ReadFieldEnd();
   }
   iprot.ReadStructEnd();
 }
Example #2
0
    public void OnWebSocketWithThriftTestClick()
    {
        ThriftHandler <idl.Protocol> thandler = new ThriftHandler <idl.Protocol> ();

        thandler.AddHandler(idl.Protocol.Test1, (idl.TestAck ack) => {
            Debug.Log("Laputa says: " + ack.ToString());
        });

        thandler.AddHandler(idl.Protocol.Test2, (idl.Test2Ack ack) => {
            Debug.Log("Laputa says: " + ack.ToString());
        });

        WebSocket ws = new WebSocket("ws://127.0.0.1:8091/chat/1");

        ws.OnMessage += (sender, e) => {
            MemoryStream stream = new MemoryStream(e.RawData);
            Thrift.Protocol.TProtocol tProtocol = new Thrift.Protocol.TBinaryProtocol(new Thrift.Transport.TStreamTransport(stream, null));
            tProtocol.ReadStructBegin();
            tProtocol.ReadFieldBegin();
            idl.Header header = new idl.Header();
            header.Read(tProtocol);
            stream.Position = 0;

            thandler.DoHandle(header.Key, tProtocol);
        };

        ws.OnOpen += (object sender, System.EventArgs e) => {
            idl.TestReq shared = new idl.TestReq();
            shared.Header     = new idl.Header();
            shared.Header.Key = idl.Protocol.Test1;
            shared.Key        = 11;
            shared.Value      = "aaa";

            ws.SendAsync(shared, (bool s) => {
                Debug.Log("sent :" + s);
            });
        };

        ws.OnError += (object sender, NetworkLib.WebSocketSharp.ErrorEventArgs e) => {
            Debug.Log("error :" + e.Exception.Message);
        };

        ws.OnClose += (object sender, CloseEventArgs e) => {
            Debug.Log("close");
        };

        ws.ConnectAsync();
    }
Example #3
0
 public void Read (TProtocol iprot)
 {
   TField field;
   iprot.ReadStructBegin();
   while (true)
   {
     field = iprot.ReadFieldBegin();
     if (field.Type == TType.Stop) { 
       break;
     }
     switch (field.ID)
     {
       case 1:
         if (field.Type == TType.Struct) {
           Header = new Header();
           Header.Read(iprot);
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       case 2:
         if (field.Type == TType.Map) {
           {
             Container = new Dictionary<string, string>();
             TMap _map0 = iprot.ReadMapBegin();
             for( int _i1 = 0; _i1 < _map0.Count; ++_i1)
             {
               string _key2;
               string _val3;
               _key2 = iprot.ReadString();
               _val3 = iprot.ReadString();
               Container[_key2] = _val3;
             }
             iprot.ReadMapEnd();
           }
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       default: 
         TProtocolUtil.Skip(iprot, field.Type);
         break;
     }
     iprot.ReadFieldEnd();
   }
   iprot.ReadStructEnd();
 }
Example #4
0
	public void OnWebSocketWithThriftTestClick()
	{
		ThriftHandler<idl.Protocol> thandler = new ThriftHandler<idl.Protocol> ();

		thandler.AddHandler(idl.Protocol.Test1, (idl.TestAck ack) => {
			Debug.Log("Laputa says: " + ack.ToString());
		});

		thandler.AddHandler(idl.Protocol.Test2, (idl.Test2Ack ack) => {
			Debug.Log("Laputa says: " + ack.ToString());
		});

		WebSocket ws = new WebSocket ("ws://127.0.0.1:8091/chat/1");
		ws.OnMessage += (sender, e) =>{

			MemoryStream stream = new MemoryStream(e.RawData);
			Thrift.Protocol.TProtocol tProtocol = new Thrift.Protocol.TBinaryProtocol(new Thrift.Transport.TStreamTransport(stream, null));
			tProtocol.ReadStructBegin();
			tProtocol.ReadFieldBegin();
			idl.Header header = new idl.Header();
			header.Read(tProtocol);
			stream.Position = 0;

			thandler.DoHandle(header.Key, tProtocol);

		};
		
		ws.OnOpen += (object sender, System.EventArgs e) => {
			idl.TestReq shared = new idl.TestReq();
			shared.Header = new idl.Header();
			shared.Header.Key = idl.Protocol.Test1;
			shared.Key = 11;
			shared.Value = "aaa";

			ws.SendAsync (shared, (bool s) =>{
				Debug.Log("sent :" + s);
			});
		};
		
		ws.OnError += (object sender, NetworkLib.WebSocketSharp.ErrorEventArgs e) => {
			Debug.Log("error :" + e.Exception.Message);
		};
		
		ws.OnClose += (object sender, CloseEventArgs e) => {
			Debug.Log("close");
		};
		
		ws.ConnectAsync();
	}