我有一个使用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();
});
});
提前谢谢。
答案 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服务器的计算机。