1

我有一个使用 XSocket 的 asp.net mvc3 web 应用程序,它在本地运行良好,但它不在我的 Intranet 上。

我已经配置了 xsockets windows 服务并且运行良好。我已经将我的“插件”(DLL 和依赖项)复制到了正确的目录中并且运行良好。

问题是当我尝试通过 Intranet 访问应用程序时,连接总是显示已关闭。

我需要指向特定的 IP 地址/服务器名称吗?

我的 javascript 代码在 localhost 中运行良好:

var url = "ws://127.0.0.1:4507/";
var controller = "Chat";
var mensajes = $('#messages');
var mensaje = $('#message');

var ws = new XSockets.WebSocket(url + controller);

function send() {
    if (mensaje.val() != '') {
        ws.trigger('sendall', { message: mensaje.val() });
        mensaje.attr('value', '');
    }
}

$(function () {
    ws.bind(XSockets.Events.open, function () {
        console.log("opened");
    });
    ws.bind(XSockets.Events.close, function () {
        console.log("closed");
    });
    ws.bind(XSockets.Events.onError, function (err) {
        console.log("error", err);
    });
    ws.bind('sendall', function (mensaje) {
        console.log(mensaje);
        mensajes.prepend($('<div>').text(mensaje));
    });

    mensaje.on('keyup', function (e) {
        if (e.which == 13 || e.keyCode == 13) {
            e.preventDefault();
            send();
        }
    });

    $('#publish').click(function () {
        send();
    });
});

先感谢您。

4

1 回答 1

3

首先,您需要配置您的服务器以使 Uri 指向您的计算机地址*(不是 localhost,不是 127.0.0.1!)。然后这个:

var url = "ws://127.0.0.1:4507/";

需要与该地址完全匹配(可以是域名,但对于初学者,最好使用 ip)。

这个:

var ws = new XSockets.WebSocket(url + controller);

需要看起来像这样:

var ws = new XSockets.WebSocket("ws://my.ip.add.res:myport/myController", myController, null); //null can contain an array of parameters that you want to send to a server, but if you are just starting, leave this with null

此外,当我为我的配置而苦苦挣扎时,很多时候我咬着枕头,因为我尝试使用不同的端口而忘记了防火墙。所以不要忘记它。:)

我会在这里多呆 30-40 分钟,然后我要去睡觉,如果您有任何问题并会在这段时间内回复,我会留在这里并尽力帮助您,因为我也经历过这个,它疼得要命。:)

PS。您也可以联系开发人员contact@xsockets.net,他们真的很酷,一定会帮助您!

*编辑:计算机地址是指托管 xsockets 服务器的计算机。

于 2013-04-16T20:42:50.987 回答