我正在寻找有关在运行Windows Server 2003 R2和IIS6的服务器上设置MVC / XSockets项目的一些指导。
我们的团队正在开发一个使用XSockets 3.x实时动态显示数据的webapp。我们正在使用我们的时间输入系统在“仪表板”上显示当前时间条目。员工通过单独的应用程序输入他们的时间,仪表板应用程序应显示最近的活动更新。
该项目是使用MVC4框架制作的。从我的开发机器进行测试时,这与服务器分开时效果很好。 ws服务器实例在ws://x.x.x.x:4502上设置,其中x.x.x.x是服务器的IP。 XSockets组件集成在同一个项目中。
将我的本地项目推送到服务器并进行一些设置之后,除XSockets功能外,一切正常。无法从服务器外部访问XSockets服务器。当我从服务器内部进行测试时,意味着打开浏览器并转到webapp,它可以正常工作。
我已经尝试过遵循xsockets.net上概述的自定义配置设置,但是我对如何定义ws服务器实例感到有些困惑。我使用服务器的IP吗? localhost IP(127.0.0.1)?我试过了两个,但它不起作用。我尝试添加此自定义配置设置:
public class XSocketsConfig : ConfigurationSetting
{
public XSocketsConfig() : base(new Uri("ws://dashboard.ourdomain.com:4502/"), new Uri("ws://x.x.x.x:4502")) { }
}
从javascript我通过“ws://dashboard.ourdomain.com:4502 /”连接访问XSocket,但是在我部署到服务器后测试它时它不起作用。我也尝试过:
public class XSocketsConfig : ConfigurationSetting
{
public XSocketsConfig() : base(new Uri("ws://x.x.x.x:4502")) { }
}
or
public class XSocketsConfig : ConfigurationSetting
{
public XSocketsConfig() : base(new Uri("ws://127.0.0.1:4502")) { }
}
我确实启用了服务器防火墙,让流量通过端口4502.再一次,一切都在我的本地机器上运行良好,所以这让我相信它是服务器上的设置,或XSockets的配置设置。
在IIS 6上实现客户端 - 服务器连接的正确方法是什么?非常感谢指针和建议,因为我的几天搜索还没有产生有效的结果。
答案 0 :(得分:0)
好的,所以我终于明白了。毕竟是防火墙问题。我必须配置防火墙以允许公共IP和端口上的流量,并将该流量转发到私有IP和端口。我的XSockets配置最终看起来像这样:
//http://xsockets.net/docs/configuration#public--private-endpoint
public class XSocketsConfig : ConfigurationSetting
{
public XSocketsConfig() : base(new Uri("ws://x.x.x.x:4502/"), new Uri("ws://y.y.y.y:4502")) { }
}
其中x.x.x.x是服务器的公共IP地址,y.y.y.y是LAN上的专用IP地址。在客户端(js),然后我做:
var conn = new XSockets.WebSocket('ws://x.x.x.x:4502/Activity');
这需要进行大量的故障排除,但我很高兴我弄清楚了。