SignalR问题:无法连接到Hub类

时间:2015-02-09 06:13:12

标签: javascript c# .net asp.net-mvc-5 signalr

我在SignalR中使用MVC 5并尝试通过Hub创建与JavaScript类(MyHub.cs)的连接,但收到以下错误消息:

Uncaught TypeError: Cannot read property 'client' of undefined

以下是我尝试创建与SignalR的连接的代码:

var client= $.connection.myHub;

我已经在google上进行了很多探索,但没有得到任何相关的解决方案。请帮我弄清楚这个问题。

提前致谢。

2 个答案:

答案 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" />

它对我有用。