Javascript MVC中的监听websocket
我使用的是MVC4。我有一个js代码,需要借助WebSocket与服务器通信。我正在服务器上使用。我正在应用程序启动事件中创建套接字服务器。但是,当我尝试从浏览器控制台连接时,我会出现连接被拒绝之类的错误 这是我的global.asax代码Javascript MVC中的监听websocket,javascript,c#,asp.net-mvc,asp.net-mvc-4,websocket,Javascript,C#,Asp.net Mvc,Asp.net Mvc 4,Websocket,我使用的是MVC4。我有一个js代码,需要借助WebSocket与服务器通信。我正在服务器上使用。我正在应用程序启动事件中创建套接字服务器。但是,当我尝试从浏览器控制台连接时,我会出现连接被拒绝之类的错误 这是我的global.asax代码 看起来只要应用程序启动方法结束,WebSocketServer就会超出作用域,并最终被垃圾回收 例如,您可以将该对象设置为全局类中的成员,并在应用程序结束事件中处置它 更新: 您还使用wss模式,但不提供任何证书配置。请注意,IIS和Fleck是两个不同的东
看起来只要应用程序启动方法结束,WebSocketServer就会超出作用域,并最终被垃圾回收 例如,您可以将该对象设置为全局类中的成员,并在应用程序结束事件中处置它 更新: 您还使用wss模式,但不提供任何证书配置。请注意,IIS和Fleck是两个不同的东西,运行在不同的端口,这并不是因为您在ASP.NET应用程序中创建了Fleck,这意味着Fleck将推断SSL/TLS配置或任何配置。请尝试将模式设置为ws,然后打开不带HTTPS的页面,看看它是否有效。谢谢您的回复。我将服务器作为全局静态变量。然后,当我从浏览器控制台测试时,它在连接时超时。
protected void Application_Start()
{
IPAddress ip = null;
if (GetResolvedConnecionIPAddress(out ip)) // Get host ip
{
string Domain = "wss" + System.Uri.SchemeDelimiter + ip + ":" + "8092";
FleckLog.Level = Fleck.LogLevel.Debug;
try
{
if (GetResolvedConnecionIPAddress(out ip))
{
var server = new WebSocketServer(Domain);
server.Start(socket =>
{
LogWriter.Logger.Info("WS: Inside socket server");
socket.OnOpen = () =>
{
LogWriter.Logger.Info("WS: OnOpen socket");
};
socket.OnClose = () =>
{
LogWriter.Logger.Info("WS: OnClose socket");
};
socket.OnMessage = message =>
{
LogWriter.Logger.Info("WS: OnMsg socket");
};
});
}
}
catch (Exception e)
{
throw;
}
}
}