信号中心未连接

本文关键字:连接 信号 | 更新日期: 2023-09-27 17:55:39

我正在尝试创建 SignalR 应用程序,但无法连接到我的中心。

这是我的以下代码:

<!DOCTYPE html>
<html>
<head>
    <title>SignalR Simple Chat</title>
</head>
<body>
    <button id="display">Display</button>
    <button id="send">Send</button>
    <input id="Name" type="Text">
    <input id="Content" type="Text">
    <!--Script references. -->
    <!--Reference the jQuery library. -->
    <script src="Scripts/jquery-1.6.4.min.js"></script>
    <!--Reference the SignalR library. -->
    <script src="/Scripts/jquery.signalR-2.0.0.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 () {
            messageArr = [];
            var chat = $.connection.chatHub;
            chat.client.broadcastMessage = function (id, name, content) {
                var message = { ID: id, Name: name, Content: content };
                messageArr.push(message);
            };
            $('#display').click(function() {
                window.alert(messageArr);
            });
            $.connection.hub.start().done(function () {
                $('#send').click(function () {
                    window.alert("Sent");
                    chat.server.send(0, document.getElementById("Name").value, document.getElementById("Content"));
                });
            });
        });
    </script>
</body>
</html>

C# 中心:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.AspNet.SignalR;
namespace WebAPI
{
    public class ChatHub : Hub
    {
        public void Send(int id, String name, String content)
        {
            Clients.All.broadcastMessage(id, name, content);
        }
    }
}

欧文创业班:

using System;
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(WebAPI.Startup))]
namespace WebAPI
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            // Any connection or hub wire up and configuration should go here
            app.MapSignalR();
         }
     }
}

当我通过Visual Studio 2013运行此按钮时,我单击发送按钮,没有出现警报告诉我我按下了按钮。另外,当我稍后单击显示按钮时,messageArr 数组仍然是空的。我可以更改什么才能使其实际工作?

信号中心未连接

好吧,我不确定如何,但我似乎已经修复了我的代码

<!DOCTYPE html>
<html>
<head>
<title>SignalR Simple Chat</title>
</head>
<body>
<button id="display"onclick="displayMessage()">Display</button>
<button id="send">Send</button>
<input id="Name" type="Text">
<input id="Content" type="Text">
<!--Script references. -->
<!--Reference the jQuery library. -->
<script src="Scripts/jquery-1.6.4.min.js"></script>
<!--Reference the SignalR library. -->
<script src="/Scripts/jquery.signalR-2.0.0.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">
    messageArr = [];
    $(function () {
        var chat = $.connection.chatHub;
        chat.client.broadcastMessage = function (id, name, content) {
            var message = { ID: id, Name: name, Content: content };
            messageArr.push(message);
        };

        $.connection.hub.start().done(function () {
            $('#send').click(function () {
                chat.server.send(0, document.getElementById("Name").value, document.getElementById("Content").value);
            });
        });
    });
    function displayMessage() {
        window.alert(messageArr);
    }
</script>

如果有人能向我解释这如何解决我的问题,那将是有帮助的。