XSocket在localhost上运行正常,但在Intranet环境中运行不正常

时间:2013-04-16 16:48:46

标签: asp.net-mvc-3 xsockets.net

我有一个使用XSocket的asp.net mvc3网络应用程序,它在本地工作正常,但它不在我的内部网上。

我已经配置了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();
    });
});

提前谢谢。

1 个答案:

答案 0 :(得分: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服务器的计算机。