Подтвердить что ты не робот

Как присоединиться к группе с помощью SignalR

Я новичок в использовании SignalR (запущен сегодня). Довольно просто отправить сообщение всем подключенным клиентам, но теперь я хочу просто отправить группу. Я не могу найти простую документацию о том, как присоединиться на стороне клиента. Если кто-то может помочь, как я могу присоединиться к группе на стороне javascript. Спасибо за любую помощь.

public class EventHub : Hub
{
    public void SendNewMedia(MediaInfoViewModel model,Guid eventId)
    {
        Clients.Group(eventId.ToString()).setupmedia(model);
    }
}
//Controller that is sending client new data
var eventHub = GlobalHost.ConnectionManager.GetHubContext<EventHub>();
              var result = eventHub.Clients.Group(eventId.ToString()).setupmedia(eventViewer);

//Finally the javascript. Not sure how to setup just for a group
$(function () {
    var event = $.connection.eventHub;
    event.client.setupmedia = function (newMedia) {

        $('#photolist').prepend('<li><img src="' + newMedia.MediaUrl + '" class="img-polaroid span2"/></li>');
    };
    $.connection.hub.start(function() {
        event.server.create(eventID);//I know this is wrong but not sure how to connect
    }).done(function () {
        alert('conntected. Ready to retrieve data!');
    });
});
4b9b3361

Ответ 1

Вы не можете. Если вы можете присоединиться к группе из javascript, тогда любой может использовать ваш код для присоединения к любой группе, которая нарушает безопасность. Если вам действительно нужно это сделать - создайте метод на стороне сервера, который принимает имя группы в качестве параметра и добавляет клиента в группу.

public void JoinGroup(string groupName)
{
    this.Groups.Add(this.Context.ConnectionId, groupName);
}

Затем вызовите его из JS таким образом

eventHub.server.joinGroup("my-awsm-group");