Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Signalr 远程输入维修操作时,信号机未广播_Signalr - Fatal编程技术网

Signalr 远程输入维修操作时,信号机未广播

Signalr 远程输入维修操作时,信号机未广播,signalr,Signalr,我的web api odata服务中有一个操作条目。它很好用。任何到达的消息都会记录到磁盘,因此我知道消息正在到达那里。如果我从网络上任何地方的客户端应用程序调用此操作,消息将被记录到磁盘,并使用SignalR将消息广播到正在侦听的javascript客户端。这一切都很完美 如果我使用相同的客户端应用程序调用相同的操作条目,但来自不同的网络,那么消息仍然可以正常到达。消息及其所有数据都被记录到磁盘文件中。然而,信号器不会广播消息。在使用信号器广播之前,我已将消息数据写入日志文件一条语句,因此我知

我的web api odata服务中有一个操作条目。它很好用。任何到达的消息都会记录到磁盘,因此我知道消息正在到达那里。如果我从网络上任何地方的客户端应用程序调用此操作,消息将被记录到磁盘,并使用SignalR将消息广播到正在侦听的javascript客户端。这一切都很完美

如果我使用相同的客户端应用程序调用相同的操作条目,但来自不同的网络,那么消息仍然可以正常到达。消息及其所有数据都被记录到磁盘文件中。然而,信号器不会广播消息。在使用信号器广播之前,我已将消息数据写入日志文件一条语句,因此我知道我有要广播的有效数据。这是我的行动切入点。同样,这段代码没有什么问题,因为我每次都能很好地接收到消息

    [HttpPost]
    [ODataRoute("MyResponse()")]
    public IHttpActionResult MyResponse(ODataActionParameters parameters)
    {
        IHttpActionResult retVal = null;
        BridgeResponse bridgeResponse = null;

        try
        {
            if (parameters != null)
            {
                bridgeResponse = (BridgeResponse)parameters["bridgeResponse"];
                if (bridgeResponse != null)
                {
我有一个启动文件,可以在其中进行初始化:

[assembly: OwinStartup(typeof(XXXXX.Startup))]
namespace XXXXX
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapSignalR("/Beacon", new HubConfiguration());
        }
    }
}
这是我的中心

[HubName("Beacon")]
public class Beacon : Hub
{
    private static IHubContext hubContext = GlobalHost.ConnectionManager.GetHubContext<Beacon>();

    public static void SendMessageToHub(string data, String To)
    {
        hubContext.Clients.All.displayData(data);
    }
}
[HubName(“信标”)]
公共类信标:集线器
{
私有静态IHubContext hubContext=GlobalHost.ConnectionManager.GetHubContext();
公共静态void SendMessageToHub(字符串数据,字符串到)
{
hubContext.Clients.All.displayData(数据);
}
}
不太可能。我的javascript客户端使用“displayData”方法显示数据。同样,如果我在我的网络中的任何地方调用我的操作,这一切都会完美工作。如果我从另一个网络调用该操作,除了信号器广播之外,其他一切都工作


这件事已经困扰了我好几天了。非常感谢您的帮助。

请添加更多关于“不同网络”含义的信息。此外,应用程序是如何托管的?在中心内使用静态方法的原因/背景是什么?