我在类库中有一个 signalr hubclass
当我在我的 web 应用程序中使用那个 hubclass 引用带有下面 javascript 代码的类库时,它不起作用,
$(function () {
var chat = $.connection.notificationHub;
chat.client.newMessage = function (message) {
alert(message);
$('#messages').append('<li><strong>' + message + '</strong>: </li>');
};
$.connection.hub.start();
});
最佳答案
您需要一个事件来触发 Hub 类中的方法。请参见以下示例:
类库中的NotificationHub
public class NotificationHub : Hub
{
public void Send(string message)
{
Clients.All.newMessage(message);
}
}
网络应用
<input type="text" id="message" />
<input type="button" id="sendmessage" value="Send" />
<ul id="messages"></ul>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.signalR-2.0.1.min.js"></script>
<script src="signalr/hubs"></script>
<script>
$(function () {
var chat = $.connection.notificationHub;
chat.client.newMessage = function (data) {
//alert(data);
$('#messages').append('<li><strong>' + data + '</strong>: </li>');
};
$('#message').focus();
$.connection.hub.start().done(function () {
console.log("Connected");
$('#sendmessage').click(function () {
chat.server.send($('#message').val());
$('#message').val('').focus();
});
});
});
</script>
注意
因为你的hubclass在类库里,你需要在里面安装Microsoft ASP.NET SignalR
包。您还需要将其安装在 Web 应用程序中。然后将 hubclass 引用添加到 webapplication。在您的 Startup 类中添加 app.MapSignalR()
,如下所示:
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
app.MapSignalR();
}
}
关于c# - 类库中的 SignalR 中心类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20795982/