我在SignalR
中使用MVC 5
并尝试通过Hub
创建与JavaScript
类(MyHub.cs)的连接,但收到以下错误消息:
Uncaught TypeError: Cannot read property 'client' of undefined
以下是我尝试创建与SignalR
的连接的代码:
var client= $.connection.myHub;
我已经在google
上进行了很多探索,但没有得到任何相关的解决方案。请帮我弄清楚这个问题。
提前致谢。
答案 0 :(得分:1)
你必须在下面提到的代号。 我的观点有以下的代号
<script src="~/Scripts/jquery.signalR-2.1.2.min.js"></script>
<script src="~/signalr/hubs"></script>
<script>
$(function ()
{
var connectionHub = $.connection.commentHub;
connectionHub.client.addNewComment = function (comment)
{
$("#Comment-list").append("<li>" + comment + "</li>");
};
$.connection.hub.start().done(function ()
{
$('#valueofcomment').keypress(function (event) {
var keycode = (event.keyCode ? event.keyCode : event.which);
if (keycode == '13') {
var UserName = '@Session["UserName"].ToString()' + '::' + $("#valueofcomment").val();
connectionHub.server.addComment(UserName);
$("#valueofcomment").val("");
return false;
}
});
$("#InserComment").click(function ()
{
var UserName = '@Session["UserName"].ToString()' + '::' + $("#valueofcomment").val();
connectionHub.server.addComment(UserName);
$("#valueofcomment").val("");
});
});
});
</script>
忽略内在逻辑,这是我的要求。你只需要查看其中使用的方法。
我的CommentHub类看起来像
public class CommentHub:Hub
{
public void AddComment(string Comment)
{
var Context = new SignalREntities();
Comment com = new Comment();
com.Comment1 = Comment;
Context.Comments.Add(com);
Context.SaveChanges();
Clients.All.AddNewComment(Comment);
}
}
答案 1 :(得分:0)
我找到了解决方案,只需从web.config
<add key="owin:AutomaticAppStartup" value="false" />
它对我有用。