微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 mvc 视图上未收到 SignalR 消息

如何解决在 mvc 视图上未收到 SignalR 消息

我正在尝试将消息从 api 发送到我正在运行的视图 在单独的 api 上。集线器已打开,消息会定期显示 带有日志的 html 页面。但是当我在我的 cshtml 上使用它时没有显示任何内容 看法。我的第一个 api url 就像 http://localhost:2003/ 我的第二个 api 是 http://localhost:2001/

hub.cs 于 2003 年

[HubName("ContosoChatHub")]
public class ContosoChatHub : Hub
{
    public void SendQuestiontoClient(string msg)
    {
        string publishtime = Convert.ToString(DateTime.UtcNow);
        Clients.All.addSendQuestiontoClient(msg);
    }

}

startup.cs 在两个 api 中输入

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

    }

控制器从 2003 年开始调用发送消息方法

public IHttpActionResult SendHubMessage()
        {
            var response = new ApiResponse<bool>(RequestId);
            try
            {

                var hubContext = GlobalHost.ConnectionManager.GetHubContext<ContosoChatHub>();
                for (int i= 0;i<i+1;i++)
                {
                Thread.Sleep(4000);
                hubContext.Clients.All.addSendQuestiontoClient(i+"th Message");
                }
                response.Data = true;
               response.Status = new ApiStatus(ResponseStatus.Successstatus.GetErrorCode(),ResponseStatus.Successstatus.GetErrorDescription());
               return Ok(response);
           }

test.html 正在运行并显示新消息并登录控制台

<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>

    <script src="jquery.signalR-2.2.0.min.js"></script>
<script src="http://localhost:2003/signalr/hubs"></script> 

    <script>
        $(function () {
                var connection = $.hubConnection();
                connection.logging=true;
                connection.url = "http://localhost:2003/signalr";
                var contosoChatHubProxy = connection.createHubProxy('contosoChatHub');
                contosoChatHubProxy.on('addSendQuestiontoClient',function (msg) {
                console.log(msg);
                   
                });
                connection.start({ withCredentials: false }).done(function () {
                });
            });
    </script>

test.cshml 不工作并且在控制台中没有显示

@section scripts{

    <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
    <script src="~/Scripts/jquery.signalR-2.2.0.min.js"></script>
    <script src="http://localhost:2003/signalr/hubs"></script>
    <script>
        $(function () {
            

            var connection = $.hubConnection();
            connection.logging = true;
            connection.url = "http://localhost:2003/signalr";
            var contosoChatHubProxy = connection.createHubProxy('contosoChatHub');
            contosoChatHubProxy.on('addSendQuestiontoClient',function (msg) {
                console.log(msg);

                connection.start({ withCredentials: false }).done(function () {
                });
            });
        });
    </script>

}@

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。