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(); }
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(); }
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(); }
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(); }