SignalR正在Web项目中工作但不在网站中工作

时间:2014-03-22 13:49:56

标签: asp.net signalr

我使用了signalR的网络应用程序,效果很好。我需要在名为SignalR的网站中使用Sha

我在配置文件中将runAllManagedModulesForAllRequests设置为true。这是一个VS 2013项目。与集线器的连接是成功的。为了让它在网站项目中运作,我还需要做些什么吗?

我已将我的Chathub.cs放在App_code文件夹中,我正在调试Index.html文件。 Index.html页面正在正确加载,但是当我点击某个按钮时,它无法正常工作。

这是我在Index.html文件

中的脚本标记内编写的确切代码
 <!--Script references. -->

  <!--Reference the jQuery library. -->
<script src="Scripts/jquery-1.8.2.min.js"></script>
<script src="scripts/json2.js"></script>
<script src="Scripts/ui/jquery.ui.core.js"></script>
<script src="Scripts/ui/jquery.ui.widget.js"></script>
<script src="Scripts/ui/jquery.ui.mouse.js"></script>
<script src="Scripts/ui/jquery.ui.draggable.js"></script>
<script src="Scripts/ui/jquery.ui.resizable.js"></script>



<!--Reference the SignalR library. -->
<script src="../Scripts/jquery.signalR-1.0.0.js"></script>

<!--Reference the autogenerated SignalR hub script. -->
<script src="../signalr/hubs"></script>

<script type="text/javascript">

    $(function () {

        setScreen(false);

        // Declare a proxy to reference the hub. 
        var chatHub = $.connection.chatHub;

        registerClientMethods(chatHub);

        // Start Hub
        $.connection.hub.start().done(function () {

            registerEvents(chatHub)

        });

    });

    function setScreen(isLogin) {

        if (!isLogin) {

            $("#divChat").hide();
            $("#divLogin").show();
        }
        else {

            $("#divChat").show();
            $("#divLogin").hide();
        }

    }

    function registerEvents(chatHub) {

        $("#btnStartChat").click(function () {

            var name = $("#txtNickName").val();
            if (name.length > 0) {
                chatHub.server.connect(name);
            }
            else {
                alert("Please enter name");
            }

        });


        $('#btnSendMsg').click(function () {

            var msg = $("#txtMessage").val();
            if (msg.length > 0) {

                var userName = $('#hdUserName').val();
                chatHub.server.sendMessageToAll(userName, msg);
                $("#txtMessage").val('');
            }
        });


        $("#txtNickName").keypress(function (e) {
            if (e.which == 13) {
                $("#btnStartChat").click();
            }
        });

        $("#txtMessage").keypress(function (e) {
            if (e.which == 13) {
                $('#btnSendMsg').click();
            }
        });


    }

    function registerClientMethods(chatHub) {

        // Calls when user successfully logged in
        chatHub.client.onConnected = function (id, userName, allUsers, messages) {

            setScreen(true);

            $('#hdId').val(id);
            $('#hdUserName').val(userName);
            $('#spanUser').html(userName);

            // Add All Users
            for (i = 0; i < allUsers.length; i++) {

                AddUser(chatHub, allUsers[i].ConnectionId, allUsers[i].UserName);
            }

            // Add Existing Messages
            for (i = 0; i < messages.length; i++) {

                AddMessage(messages[i].UserName, messages[i].Message);
            }


        }

        // On New User Connected
        chatHub.client.onNewUserConnected = function (id, name) {

            AddUser(chatHub, id, name);
        }


        // On User Disconnected
        chatHub.client.onUserDisconnected = function (id, userName) {

            $('#' + id).remove();

            var ctrId = 'private_' + id;
            $('#' + ctrId).remove();


            var disc = $('<div class="disconnect">"' + userName + '" logged off.         </div>');

            $(disc).hide();
            $('#divusers').prepend(disc);
            $(disc).fadeIn(200).delay(2000).fadeOut(200);

        }

        chatHub.client.messageReceived = function (userName, message) {

            AddMessage(userName, message);
        }


        chatHub.client.sendPrivateMessage = function (windowId, fromUserName, message) {

            var ctrId = 'private_' + windowId;


            if ($('#' + ctrId).length == 0) {

                createPrivateChatWindow(chatHub, windowId, ctrId, fromUserName);

            }

            $('#' + ctrId).find('#divMessage').append('<div class="message"><span   class="userName">' + fromUserName + '</span>: ' + message + '</div>');

            // set scrollbar
            var height = $('#' + ctrId).find('#divMessage')[0].scrollHeight;
            $('#' + ctrId).find('#divMessage').scrollTop(height);

        }

    }

    function AddUser(chatHub, id, name) {

        var userId = $('#hdId').val();

        var code = "";

        if (userId == id) {

            code = $('<div class="loginUser">' + name + "</div>");

        }
        else {

            code = $('<a id="' + id + '" class="user" >' + name + '<a>');

            $(code).dblclick(function () {

                var id = $(this).attr('id');

                if (userId != id)
                    OpenPrivateChatWindow(chatHub, id, name);

            });
        }

        $("#divusers").append(code);

    }

    function AddMessage(userName, message) {
        $('#divChatWindow').append('<div class="message"><span class="userName">' + userName + '</span>: ' + message + '</div>');

        var height = $('#divChatWindow')[0].scrollHeight;
        $('#divChatWindow').scrollTop(height);
    }

    function OpenPrivateChatWindow(chatHub, id, userName) {

        var ctrId = 'private_' + id;

        if ($('#' + ctrId).length > 0) return;

        createPrivateChatWindow(chatHub, id, ctrId, userName);

    }

    function createPrivateChatWindow(chatHub, userId, ctrId, userName) {

        var div = '<div id="' + ctrId + '" class="ui-widget-content draggable" rel="0">' +
                   '<div class="header">' +
                      '<div  style="float:right;">' +
                          '<img id="imgDelete"  style="cursor:pointer;" src="/Images/delete.png"/>' +
                       '</div>' +

                       '<span class="selText" rel="0">' + userName + '</span>' +
                   '</div>' +
                   '<div id="divMessage" class="messageArea">' +

                   '</div>' +
                   '<div class="buttonBar">' +
                      '<input id="txtPrivateMessage" class="msgText" type="text"   />' +
                      '<input id="btnSendMessage" class="submitButton button" type="button" value="Send"   />' +
                   '</div>' +
                '</div>';

        var $div = $(div);

        // DELETE BUTTON IMAGE
        $div.find('#imgDelete').click(function () {
            $('#' + ctrId).remove();
        });

        // Send Button event
        $div.find("#btnSendMessage").click(function () {

            $textBox = $div.find("#txtPrivateMessage");
            var msg = $textBox.val();
            if (msg.length > 0) {

                chatHub.server.sendPrivateMessage(userId, msg);
                $textBox.val('');
            }
        });

        // Text Box event
        $div.find("#txtPrivateMessage").keypress(function (e) {
            if (e.which == 13) {
                $div.find("#btnSendMessage").click();
            }
        });

        AddDivToContainer($div);

    }

    function AddDivToContainer($div) {
        $('#divContainer').prepend($div);

        $div.draggable({

            handle: ".header",
            stop: function () {

            }
        });

        ////$div.resizable({
        ////    stop: function () {

        ////    }
        ////});

    }

</script>

0 个答案:

没有答案