【问题标题】:Signal r notification信号员通知
【发布时间】:2016-02-28 23:39:57
【问题描述】:

我正在创建一个使用信号 r 发送通知的应用程序。我正在使用 VS 2012。在我的通知视图中,我在@model App.Models.Notification 中添加了以下代码。

@{
    ViewBag.Title = "Index";
}

@section Scripts
{    
    <script src="/Scripts/jquery-1.8.20.min.js"></script>
    <script src="~/Scripts/jquery.signalR-2.2.0.js"></script>
    <script src="/signalr/hubs"></script>

    <script type="text/javascript">
        $(function () {

            var proxy = $.connection.notificationHub;
            alert(proxy);
            $("#button1").click(function () {
                alert($("#text1").val());
                proxy.server.sendNotifications($("#text1").val());
                alert(12);
            });
            $.connection.hub.start();

            alert(14);
        });
    </script>
}
<h2>Index</h2>

@using (Html.BeginForm())
{
    <input id="text1" type="text" />
    <input id="button1" type="submit" value="Send" />
}

点击按钮后,sendNotifications() 没有被调用,通知也没有发送给客户端。

这是集线器类

public class NotificationHub : Hub
{
    public void Hello()
    {
        Clients.All.hello();
    }

    public void SendNotifications(string message)
    {
        Clients.All.receiveNotification(message);
    }
}

谁能帮我解决一下

【问题讨论】:

  • 你应该为receiveNotification的JavaScript代码添加处理程序。

标签: javascript .net model-view-controller signalr signalr.client


【解决方案1】:

您还需要创建一个 owin 启动类。我将在此处放置代码(与您的视图相同):-

<script src="~/Scripts/jquery-1.10.2.min.js"></script>
    <script src="~/Scripts/jquery.signalR-2.1.2.min.js"></script>
    <script src="/signalr/hubs"></script>

    <script type="text/javascript">
        $(function () {

            var proxy = $.connection.notificationHub;
            alert(proxy);
            $("#button1").click(function () {
                alert($("#text1").val());
                proxy.server.sendNotifications($("#text1").val());
                alert(12);
            });
            $.connection.hub.start();

            alert(14);
        });
    </script>

通知中心如:

public class NotificationHub : Hub
{
    public void Hello()
    {
        Clients.All.hello();
    }

    public void SendNotifications(string message)
    {
        Clients.All.receiveNotification(message);
    }
}

现在最重要的是你需要创建一个 owin 启动类来启动信号 r,代码如下:

    public void Configuration(IAppBuilder app)
    {
        app.MapSignalR();
    }

【讨论】:

  • 只需从 nuget 安装:- install-package Microsoft Asp.Net SignalR , install-package Microsoft.Owin 和 install-package Microsoft.Owin.Security 。如果他们说已经安装,则使用查询来更新它们。
  • 你能告诉我步骤吗
  • 好的,我给你步骤,你能告诉我你用的是哪个版本的Visual Studio吗?
  • vs 2010 Ultimate .and 我的是一个 mvc 4 app.db 使用 sql 2008
  • 安装 Microsoft.AspNet.SignalR -Version 1.1.3 解决了 2010 年安装时面临的问题。感谢 vaibhav 帮助设置我的第一个信号 r 解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-25
  • 1970-01-01
相关资源
最近更新 更多