小编San*_*man的帖子

SingalR中的消息顺序 - 如何确保它

我在一个应用程序中使用SingalR,该应用程序在短时间内发送了大量消息.假设我有客户端A和客户端B.客户端A只发送消息而客户端B只是收听消息.客户端A按以下顺序发送以下消息:A-> B-> C-> D.

我所看到的是,客户端B有时会以不同的顺序接收消息,例如:B-> A-> C-> D

保持发送消息的顺序非常重要.我在网上看了一下,我发现有人说我应该在处理这些消息的集线器上的函数上使用async-await.

public async Task hubMethod(msgObject msg)
{
   await Clients.All.message(msg);
}
Run Code Online (Sandbox Code Playgroud)

我不确定这有多大帮助,因为每次我从客户端A拨打电话时,singalR都应该创建一个新的集线器实例.它唯一能做的就是等待singalR完成它在服务器上所做的一切,以便将消息发送到另一个客户端并通知客户端A.

所以我的问题是 - 有一个singalR或asp.net机制,确保我在另一个客户端上以正确的顺序接收消息,或者我是否需要编写我自己的机制(服务器或客户端)重新排序消息,如果他们是乱序 - 如果是的话,有没有一个库已经做到了?

c# asp.net real-time signalr

6
推荐指数
1
解决办法
550
查看次数

多态性WCF反序列化不起作用

我创建了以下类.一个基类IObject和2个派生类A和B.

[KnownType(typeof(B))]
[KnownType(typeof(A))]
[DataContract(Name = "IObject")]
public class IObject
{
}

[DataContract(Name="A")]
public class A : IObject
{
    [DataMember]
    public string s1 { get; set; }     // Tag Name as it will be presented to the user

}

[DataContract(Name="B")]
public class B : IObject
{
    [DataMember]
    public string s2 { get; set; }         

}
Run Code Online (Sandbox Code Playgroud)

我还创建了以下服务:

    [ServiceKnownType(typeof(B))]
    [ServiceKnownType(typeof(A))]
    public void GetR(IObject obj)
    {

        B other = (B)obj;
    }
Run Code Online (Sandbox Code Playgroud)

我想要做的是得到一个A或B的实例,但我不知道我将得到哪一个,所以我希望得到一个IObject,然后将其转换为A或B,如我所放置的示例所示.

当我发送包含s2字符串的json字符串时会发生什么,我得到IObject实例而不是B实例.代码有什么问题?

我正在使用的客户端示例:

    var url = serviceURL;
    var data = {s2: "Data"};
    var …
Run Code Online (Sandbox Code Playgroud)

c# wcf json known-types deserialization

5
推荐指数
1
解决办法
266
查看次数

Visual Studio 2017上的Javascript源映射映射错误

我在VS 2017上创建了一个新项目.我正在使用webpack捆绑JS文件.我的webpack.config.js文件是 -

module.exports = {
    entry: "./app.js", // bundle's entry point
    output: {
        path: __dirname + "/dist", // output directory
        filename: "index_bundle.js" // name of the generated bundle
    },
    devtool: "source-map"
};
Run Code Online (Sandbox Code Playgroud)

我正在尝试从visual studio调试chrome.如果我在index_bundle.js文件上放置一个断点 - 它运行良好,它在断点处停止,它甚至将它映射到正确的文件.该问题时,我尝试把一个破发点上的原始JS文件出现.例如app.js - 它会尝试将断点放在bootstrap 14248a9c8b87e0f9032f文件中 - 这是错误的文件.我认为VS在阅读地图文件时遇到了问题.这是我创建的地图文件:

{
  "version": 3,
  "sources": [ "webpack:///webpack/bootstrap 14248a9c8b87e0f9032f", "webpack:///./funcs.js", "webpack:///./app.js" ],
  "names": [],
}
Run Code Online (Sandbox Code Playgroud)

好像它试图将断点放在原始文件上按下的相对行上的bootstrap文件中.(例如,如果我要使用app.js条目交换地图文件上的引导条目 - 它似乎将断点放在正确的位置) (顺便说一句,我没有把所有的地图文件内容 - 它是太长了,没有把map,sourceContent,file和sourceRoot条目放到

javascript breakpoints source-maps webpack visual-studio-2017

5
推荐指数
1
解决办法
945
查看次数