Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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#_Asp.net_Signalr - Fatal编程技术网

C# 使用信号器将消息从代码隐藏推送到客户端

C# 使用信号器将消息从代码隐藏推送到客户端,c#,asp.net,signalr,C#,Asp.net,Signalr,我正在从excel电子表格导入记录。我想用每个记录的进度更新客户端屏幕。有人告诉我信号员在前面 我从ChatHub示例开始,并将其向后剥离了一点 编辑… broadcastMessage功能似乎正在工作,但运行异常。下面是正在发生的事情的简短视频: ASPX页面 <form id="form2" runat="server"> <ul id="progressReport"></ul> <asp:Button Text="Push m

我正在从excel电子表格导入记录。我想用每个记录的进度更新客户端屏幕。有人告诉我信号员在前面

我从ChatHub示例开始,并将其向后剥离了一点

编辑…
broadcastMessage
功能似乎正在工作,但运行异常。下面是正在发生的事情的简短视频:

ASPX页面

<form id="form2" runat="server">

    <ul id="progressReport"></ul>

    <asp:Button Text="Push message" ID="btn" OnClick="btn_Click" runat="server" />

    <!--Script references. -->
    <!--Reference the jQuery library. -->
    <script src="Scripts/jquery-1.8.2.min.js"></script>
    <!--Reference the SignalR library. -->
    <script src="Scripts/jquery.signalR-2.0.3.min.js"></script>
    <!--Reference the autogenerated SignalR hub script. -->
    <script src="signalr/hubs"></script>

    <!--Add script to update the page and send messages.-->
    <script type="text/javascript">
        $(function () {
            // Declare a proxy to reference the hub. 
            var chat = $.connection.chatHub;
            // Create a function that the hub can call to broadcast messages.
            chat.client.broadcastMessage = function (name, message) {
                // Html encode display name and message. 
                var encodedName = $('<div />').text(name).html();
                var encodedMsg = $('<div />').text(message).html();
                // Add the message to the page. 
                $('#progressReport').append('<li><strong>' + encodedName
                    + '</strong>:&nbsp;&nbsp;' + encodedMsg + '</li>');
            };

            // Start the connection.
            $.connection.hub.start().done(function () {
                chat.server.send($('#displayname').val(), $('#message').val());
            });
        });
    </script>
</form>

    $(函数(){ //声明代理以引用中心。 var chat=$.connection.chatHub; //创建一个中心可以调用以广播消息的函数。 chat.client.broadcastMessage=函数(名称、消息){ //Html编码显示名称和消息。 var encodedName=$('').text(name).html(); var encodedMsg=$('').text(message.html(); //将消息添加到页面。 $(“#progressReport”).append(“
  • ”+encodedName +“:”+encodedMsg+”
  • ); }; //启动连接。 $.connection.hub.start().done(函数(){ chat.server.send($('#displayname').val(),$('#message').val()); }); });
    ASPX.CS

    using SignalRChat;
    using System;
    
    namespace SignalR_Test
    {
        public partial class form2 : System.Web.UI.Page
        {
            protected void btn_Click(object sender, EventArgs e)
            {
                ChatHub ch = new ChatHub();
                for ( int i = 0; i <= 10; i++)
                {
                    ch.Send("Code Behind", i +" has been imported");
                }
            }
        }
    }
    
    using Microsoft.AspNet.SignalR;
    namespace SignalRChat
    {
        public class ChatHub : Hub
        {
            public void Send(string name, string message)
            {
                var context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
                // Call the broadcastMessage method to update clients.
                context.Clients.All.broadcastMessage(name, message);
            }
        }
    }
    
    使用SignalRChat;
    使用制度;
    名称空间信号器测试
    {
    公共部分类表单2:System.Web.UI.Page
    {
    受保护的无效btn_单击(对象发送方,事件参数e)
    {
    ChatHub ch=新的ChatHub();
    
    对于(int i=0;i您是否缺少必需的
    Startup
    类?请参见示例


    JS脚本版本(jquery.signal-2.0.3.min.JS、jquery-1.8.2.min.JS)是否与“scripts”目录中的脚本匹配?

    尝试将其添加到您的aspx页面,并检查是否在javascript控制台中记录调用:

    $.connection.hub.logging = true;
    $.connection.hub.start();
    
    您的类名为
    ChatHub
    ,您正在进行
    连接。ChatHub
    位于客户端(注意小写的
    c
    与大写的对比)。请尝试将
    HubName
    属性添加到
    Hub
    类:

    [HubName("chatHub")]
    public class ChatHub : Hub
    
    另外,尝试将
    ~/
    添加到脚本src:

    <script src="~/signalr/hubs"></script>
    
    
    
    很抱歉,启动类存在。我还没有调整它,所以忘了提及它!脚本版本(html与脚本目录)如何?从我所看到的内容来看,所有脚本都被正确引用。我编辑了我的问题,并添加了一个视频链接,以显示发生了什么。感谢您的帮助。控制台报告没有错误-最后一条消息是:SignalR:Called chathub.Send…我发现在两个浏览器中发生了意外情况。我认为这与t事实上,我是从聊天演示开始的。(这里的视频:)添加了[HubName(“chatHub”)]在该位置会产生2个错误:找不到类型或命名空间名称“HubNameAttribute”找不到类型或命名空间名称“HubName”使用Microsoft.AspNet.signal.Hubs将此添加到您的using语句中;
    @wotney我想您的视频因重复而被删除。我无法查看。非常感谢您的帮助!。。。我已经更新了视频的链接