无法在我的机器中使用SignalR(使用IE9)。在输入一些文本并单击“提交”时,文本未按预期列出。此外,我希望列表从多个浏览器实例更新,并且不会发生。没有错误。有人可以在这帮忙吗?
namespace TestSignalR.Hubs
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
/// Summary description for ChatHub.
/// </summary>
public class ChatHub : SignalR.Hubs.Hub
{
public void TestMessage(string message)
{
Clients.writeMessage(message);
}
}
}
<input type="text" name="txtInput" id="txtInput" />
<button id="btnSubmit">Submit</button>
<ul id="messages">
</ul>
<script type="text/javascript" src="SignalR/Hubs"></script>
<script type="text/javascript">
$(document).ready(function (message) {
var chat = $.connection.chatHub;
chat.writeMessage = function (message) {
$("#messages").append("<li>" + message + "</li>");
};
$("#btnSubmit").click(function () {
var text = $("#txtInput").val();
chat.testMessage(text);
});
$.connection.hub.start();
});
</script>
母版页包含JQuery和SignalR文件的参考: -
<script src="Scripts/jquery-1.6.4.min.js" type="text/javascript"></script>
<script src="Scripts/jquery.signalR-0.5.2.min.js" type="text/javascript"></script>
答案 0 :(得分:3)
今天我正在处理同样的问题。
首先,您需要使用名称向Hub添加属性,如下所示:
[HubName("chathub")]
public class ChatHub : SignalR.Hubs.Hub
接下来要做的是在javascript中更改通话顺序。您需要在实例化集线器旁边进行连接。 因此,代码如下:
$(document).ready(function (message) {
var chat = $.connection.chatHub;
$.connection.hub.start();
chat.writeMessage = function (message) {
$("#messages").append("<li>" + message + "</li>");
};
$("#btnSubmit").click(function () {
var text = $("#txtInput").val();
chat.testMessage(text);
});
});
我希望它适合你。
答案 1 :(得分:0)
请从Nuget安装1.0版本的SignalR。从您的脚本引用看起来您使用0.5.2并且在撰写此帖子时最新支持的版本是1.0。请从Nuget下载Microsoft.AspNet.SignalR