Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.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
C# 信号器未添加服务器回调_C#_.net_Signalr Hub_Signalr.client - Fatal编程技术网

C# 信号器未添加服务器回调

C# 信号器未添加服务器回调,c#,.net,signalr-hub,signalr.client,C#,.net,Signalr Hub,Signalr.client,每次尝试添加新的服务器回调函数时,似乎都无法使回调显示在$.connection服务器回调列表中 我需要做什么来刷新signar生成的javascript,并用最新的服务器回调列表发送给客户端 我认为我应该能够添加一个服务器回调,以便客户端调用并重建我的应用程序,并启动一个新的Google Chrome实例,新添加的服务器回调将出现在客户端的可用回调列表中 例如,这里正是我所做的 1.)客户加入一个组,并通知所有人 public override Task OnConnected()

每次尝试添加新的服务器回调函数时,似乎都无法使回调显示在$.connection服务器回调列表中

我需要做什么来刷新signar生成的javascript,并用最新的服务器回调列表发送给客户端

我认为我应该能够添加一个服务器回调,以便客户端调用并重建我的应用程序,并启动一个新的Google Chrome实例,新添加的服务器回调将出现在客户端的可用回调列表中

例如,这里正是我所做的

1.)客户加入一个组,并通知所有人

      public override Task OnConnected()
    {
        string pid = this.Context.QueryString["pid"],
               uid = this.Context.QueryString["uid"],
               ispro = this.Context.QueryString["ispro"];

        Groups.Add(this.Context.ConnectionId, pid);

        return Clients.Group(pid).joined(new cmsg(Context.ConnectionId, UtilCommon.GetUserMini(new Guid(uid), bool.Parse(ispro))));
    }
2.)在客户端上,从服务器调用联接函数

       this.collaborateHub.client.joined = function (cmsg) {
        //
        that.chatBox.addAttendee(cmsg);

        //let the new attendee know about you
        if (cmsg.cnnid !== that.chatBox.getMeAttendee().cnnid) {
            that.chatBox.getMeAttendee().newbieid = cmsg.cnnid;
            debugger
            this.server.addMeNewbie(that.chatBox.getMeAttendee());
        };
    };
3.)现在,如果有人加入,但不是当前打开窗口的用户,这意味着刚刚加入的人不是我自己,因此我需要回电话通知服务器,通知新加入的用户将我添加到他们的用户列表中。我不必在数据库中与给定组的当前已登录用户保持联系,我只是将组的每个已登录客户端用作分布式数据库,让他们管理自己的信息

因此,我需要调用名为addMeNewbie的服务器回调;但是,此回调函数在列表中不可用

 public Task addMeNewbie(cmsg cmsg) {

        return Clients.Client(cmsg.newbieid).addCurrAttendee(cmsg);
    }
下面是调试模式下客户端的快照

4.)最后是客户端回调,我需要服务器调用该回调,以便新加入的组成员可以更新其当前组成员的列表

     this.collaborateHub.client.addCurrAttendee = function (cmsg) {
        debugger
        that.chatBox.addAttendee(cmsg);
    };
我认为我应该能够添加尽可能多的服务器回调,它们应该出现在下一次构建和重新启动Google Chrome的新实例时;然而,情况并非如此。要使新添加的服务器回调显示在客户端的可用服务器回调中,我需要做什么? 这对我来说并不重要,但我在想这可能是一个兑现问题还是什么


唯一可用的回调是提供的快照中显示的回调。现在我只有两次回电,您在快照中看到的和不可见的文件。

在此过程中,我从生成的JavaScript文件中创建了一个signar-hubs.js文件,可通过
http://localhost:3250/signalr/hubs
并且正在向我的中心添加新的服务器功能,但没有更新signal-hugs.js文件

此时,每当我添加一个新的服务器回调时,我都会通过放置此url
http://localhost:3250/signalr/hubs
进入浏览器,修改代码,然后更新我的signal-hubs.js文件