的定义
i'am a newbie带有signalr in asp.net c#中的signalr。问题,我使用州管理,而不是亲自分组属性。
public class Person
{
public string Name { get; set; }
public string Message { get; set; }
// public string Group { get; set; }
}
客户代码通过状态
<script src="scripts/jquery-1.6.4.min.js"></script>
<script src="scripts/jquery.signalR-2.2.2.min.js"></script>
<script src="/signalr/hubs" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
var broadcaster = $.connection.firstHub;
broadcaster.client.displayText = function (name, message) {
$('#messages').append('<li>' + name + ' said: ' + message + '</li>');
};
$.connection.hub.start().done(function () {
$("#broadcast").click(function () {
broadcaster.server.join($('#groupName').val());
broadcaster.state.GroupName = $('#groupName').val();
broadcaster.server.broadcastMessage({ Name: $('#name').val(),Message: $('#message').val() });
broadcaster.server.leave($('#groupName').val());
});
});
});
</script>
<div>
<input type="text" id="groupName" />
<input type="text" id="name" />
<input type="text" id="message" />
<input type="button" id="broadcast" value="Broadcast" />
<ul id="messages"></ul>
</div>
HUB实现用于使用状态值
[HubName("firstHub")]
public class Chapter3Hub : Hub
{
public void BroadcastMessage(Person person)
{
Context.ConnectionId).displayText(person.Name, person.Message);
Clients.Group(Clients.Caller.GroupName).displayText(person.Name, person.Message);
}
public Task Join(string groupName)
{
return Groups.Add(Context.ConnectionId, groupName);
}
public Task Leave(string groupName)
{
return Groups.Remove(Context.ConnectionId, groupName);
}
}
当我运行时,与错误相比。'microsoft.aspnet.signalr.hubs.ihubcallerconnectioncontext'不包含" group"'''
hjk,我修改了此行。
Clients.Group((string)Clients.Caller.GroupName).displayText(person.Name, person.Message);
并成功运行。