Thrift 是否有任何已知的 .NET 版本的异步服务器和协议?特别是我正在寻找用 C# 编写的 TThreadedSelectorServer 版本。
我刚刚检查了 git 存储库,但与 Java 版本相比,CSharp 版本缺少很多东西。
有一个RPC框架,使用标准thrift Protocol,名字叫“thrifty”,和使用thrift IDL定义服务的效果一样,即thrify可以兼容使用thrift IDL的代码,非常有帮助跨平台,它使用 DotNetty(windows 是 iocp,linux 是 nio)
[ThriftStruct]
public class LogEntry
{
[ThriftConstructor]
public LogEntry([ThriftField(1)]String category, [ThriftField(2)]String message)
{
this.Category = category;
this.Message = message;
}
[ThriftField(1)]
public String Category { get; }
[ThriftField(2)]
public String Message { get; }
}
[ThriftService("scribe")]
public interface IScribe
{
[ThriftMethod("getMessages")]
List<LogEntry> GetMessages();
[ThriftMethod]
ResultCode Log(List<LogEntry> messages);
}
public class Scribe : IScribe
{
public List<LogEntry> GetMessages()
{
return new List<LogEntry>
{
new LogEntry { Category = "c1", Message = Guid.NewGuid().ToString() },
new LogEntry { Category = "c2", Message = Guid.NewGuid().ToString() },
new LogEntry { Category = "c3", Message = Guid.NewGuid().ToString() }
};
}
public ResultCode Log(List<LogEntry> messages)
{
return ResultCode.TRY_LATER;
}
}
C#:https ://github.com/endink/Thrifty 类似的Java可以使用Swift:https ://github.com/facebook/swift