servicestack,C#,Json,Websocket,Redis,servicestack" /> servicestack,C#,Json,Websocket,Redis,servicestack" />

C# websocket上的ServiceStack DTO

C# websocket上的ServiceStack DTO,c#,json,websocket,redis,servicestack,C#,Json,Websocket,Redis,servicestack,我有一个使用ServiceStack的RESTAPI。然后,我需要我的几个路线和数据,以便更加实时和持久。因此,我在RESTAPI之外添加了WebSocket,并使用ServiceStack.Text进行DTO序列化/反序列化。这很有效,但我想有一个以上的DTO类型。这导致了一个问题,因为我需要通过websocket传递JSON内容和DTO类型 在我所有的搜索中,我没有发现WebSocket与ServiceStack的集成,而且我可能无论如何也无法采用它,因为我必须使用一个只依赖.NET 3.5

我有一个使用ServiceStack的RESTAPI。然后,我需要我的几个路线和数据,以便更加实时和持久。因此,我在RESTAPI之外添加了WebSocket,并使用ServiceStack.Text进行DTO序列化/反序列化。这很有效,但我想有一个以上的DTO类型。这导致了一个问题,因为我需要通过websocket传递JSON内容和DTO类型

在我所有的搜索中,我没有发现WebSocket与ServiceStack的集成,而且我可能无论如何也无法采用它,因为我必须使用一个只依赖.NET 3.5的旧ServiceStack。到目前为止,这就是我所做的。我已经将SuperSocket用于websocket的客户端。我在服务器上使用了炼金术。我使用ServiceStack来序列化/反序列化我的单个DTO类型。有没有其他的编码方法可以允许websocket上有多种DTO类型

这里有一个想法我在玩弄。让所有DTO都有一个字符串字段,该字段是DTO的名称,称为DTO。然后,当我收到websocket请求时,我在msg.DTO字段上执行一个switch语句,并对该DTO类型的msg进行反序列化。通常,我的DTO类型映射到Redis类型的值,所以我通常希望发送一个Redis键并返回一个强类型DTO响应

我也可以像发送RESTAPI一样发送完整的路由,但是在websocket上以字符串的形式发送路由。然后我可以从内部调用RESTAPI,而不需要外部请求的代价?但是我仍然需要知道DTO,这样才能正确地序列化

因此,对于这两种情况,如果我所有DTO中的第一个字段是DTO名称的字符串,那么我可以在不反序列化的情况下解析它。一旦我有了DTO名称,我就可以反序列化到DTO