1

XSocket を使用する asp.net mvc3 Web アプリがあります。ローカルでは正常に動作しますが、イントラネットでは動作しません。

xsockets Windows サービスを構成し、正常に動作しました。「プラグイン」(DLL と依存関係) を適切なディレクトリにコピーし、正常に動作しました。

問題は、イントラネット経由でアプリケーションにアクセスしようとすると、接続が常に閉じていると表示されることです。

特定の IP アドレス/サーバー名を指定する必要がありますか?

ローカルホストで正常に動作する私の JavaScript コード:

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

まず最初に、コンピューターのアドレス* (localhost ではなく、127.0.0.1 ではありません!) を指す Uri を持つようにサーバーを構成する必要があります。次に、これ:

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 に答える