Я работаю над приложением websocket. Я использовал Fleck (C# library) для сервера websocket. Эта демонстрация работает на моем локальном хосте, но когда я развертываю ее в Azure webapp, она выдает ошибку
System. Net .Sockets.SocketException (0x80004005): была предпринята попытка доступа к сокету способом запрещен разрешениями на доступ в System. Net .Sockets.Socket.DoBind (EndPoint endPointSnapshot, SocketAddress socketAddress) в System. Net .Sockets.Socket.Bind (EndPoint localEP) в Fleck.SocketWrapper.Bind (EndPoint endPoint) в Fleck.WebSocketServer.Start (конфигурация Action`1) в FleckDemo2.FleckSocket.Start ()
Ниже приведен фрагмент кода для запуска веб-сокета:
string ipAddress = string.Empty;
var host = System.Net.Dns.GetHostEntry(Dns.GetHostName());
List<IWebSocketConnection> sockets = new List<IWebSocketConnection>();
foreach (var ip in host.AddressList)
{
if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
{
ipAddress = ip.ToString();
break;
}
}
Fleck.WebSocketServer server = new Fleck.WebSocketServer("ws://" + ipAddress + ":80");
server.Start(socket =>
{
logger.Info("FleckSocket=>server.start");
socket.OnOpen = () =>
{
logger.Info("FleckSocket=>server.open");
sockets.Add(socket);
};
socket.OnClose = () =>
{
logger.Info("FleckSocket=>server.close");
sockets.Remove(socket);
};
socket.OnMessage = message =>
{
logger.Info("FleckSocket=>server.message and the message is : "+message);
sockets.ToList().ForEach(s => s.Send(" client says: " + message));
};
});
Я также включил «веб-сокет» -> вкл. в общих настройках веб-приложения.
Спасибо