Чат на SignalR ASP .NET

213
23 июня 2018, 10:30

Как можно написать чат на WebSocket из Microsoft.AspNet.SignalR.WebSockets а не из System.Web.WebSockets. Создал класс, для того, чтобы написать методы OnMessage, OnOpen и т.д:

 using Microsoft.AspNet.SignalR.WebSockets;

namespace Drocsid
{
    public class MyWebSocketHandler : WebSocketHandler
    {
        public MyWebSocketHandler(int? maxIncomingMessageSize) : base(maxIncomingMessageSize)
        {
        }
    }
}

Затем, попытался назначить его обработчиком:

    using System.Threading.Tasks;
    using System.Web;
    using System.Web.WebSockets;
    namespace Drocsid
    {
        public class ChatHandler : IHttpHandler
        {
            public void ProcessRequest(HttpContext context)
            {
                if (context.IsWebSocketRequest)
                    context.AcceptWebSocketRequest(new MyWebSocketHandler(1024));
            }
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

Выдаёт ошибку:

Аргумент 1: не удается преобразовать из "Drocsid.MyWebSocketHandler" в "System.FuncSystem.Web.WebSockets.AspNetWebSocketContext, System.Threading.Tasks.Task".

В строке context.AcceptWebSocketRequest(new MyWebSocketHandler(1024));

Answer 1

AcceptWebSocketRequest ожидает параметром делегат Func<AspNetWebSocketContext, Task>. Заверните вызов вашего хэндлера в метод:

context.AcceptWebSocketRequest(context => 
        new MyWebSocketHandler(1024).ProcessWebSocketRequestAsync(context));
READ ALSO
Перепрыгнуть на другой Textbox

Перепрыгнуть на другой Textbox

Как мне сделать, чтобы при вводе в textbox перекидывала на следующий не используя Tab (TabIndex) К примеру через событие Textbox_textChanged

206
Исключения в контроллере FileResult

Исключения в контроллере FileResult

У меня есть метод, который возвращает файл пользователюНо во время выполнения метода возможно исключение

153
Добавить все строки из datagridview в checkedlistbox

Добавить все строки из datagridview в checkedlistbox

Код ниже (c# winforms vs2010) позволяет добавить текущую (выделенную) строку из datagridview1 на форме2 в checkedlistbox1 на форме1Подскажите пожалуйста, как изменить...

194