SIgnalR没有运行Https

时间:2014-01-14 07:39:05

标签: c# asp.net signalr

问题是,在制作过程中,webapp是通过HTTPS传递的,而signalR中心是通过经典HTTP传递的(例如http://test.com/SignalRNotificationH),并且正如预期的那样,大多数现代浏览器抛出混合内容警告并拒绝与之交谈signalR。

我的问题是:

1)有没有办法通过代码避免混合内容警告?

2)构建支持HTTPS的自托管http服务器是否值得?如果是这样,浏览器是否会在https://test.com/SignalRNotificationH上与具有自签名证书的客户端通话?

客户页码是:

<title>SignalR Echo</title>
<script type="text/javascript" src="Scripts/jquery-1.5.min.js"></script>
<script type="text/javascript" src="Scripts/json2.js"></script>
<!--  <script type="text/javascript" src="Scripts/jquery-2.0.3.js"></script>-->
<script type="text/javascript" src="Scripts/jquery.signalR-1.1.3.js"></script>

    

    function htmlEncode(value) {

        return $("<div/>").text(value).html();
    }
    function addMsg(msg) {

        $("#messages").append("<li>" + htmlEncode(msg) + "</li>");
    }
    $(function () {

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

            var connection = $.connection("https://test.com/SendMessage", "groupname=" + $("#name").val(), true);

            connection.received(function (data) {

                addMsg(data);
            });
            connection.error(function (err) {

                addMsg("Error: " + err);

            });
            addMsg("Connecting...");

            connection.start(function () {

                addMsg("Connected.");

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

                    connection.send($("#msg").val());

                });
            });
        });
    });
</script>

<table>
    <tr>
        <td><span>Name:</span></td>
        <td>
            <input type="text" id="name" /></td>
        <td>
            <input type="button" value="Join" id="join" /></td>
    </tr>
    <tr>
        <td><span>Message:</span></td>
        <td>
            <input type="text" id="msg" /></td>
        <td>
            <input type="button" value="Send" id="send" /></td>
    </tr>
</table>
<ul id="messages"></ul>

`

0 个答案:

没有答案