SignalR Hub 未连接
SignalR Hub not connecting
我正在尝试创建 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);
}
}
}
Owin 启动 Class:
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>
如果有人能向我解释这是如何解决我的问题的,那将会有所帮助。
我正在尝试创建 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);
}
}
}
Owin 启动 Class:
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>
如果有人能向我解释这是如何解决我的问题的,那将会有所帮助。