在我调用某个服务器方法后,来自客户端的每条消息都无效。 这是客户日志的一部分。
05:06:17.1739467 - be3e5a90-a8a1-4509-a8e7-58ba4766d615 - WS: OnMessage({"C":"d-DBA40684-B,0|G,1|H,1","M":[{"H":"FuncHub","M":"getSession","A":["abcdefg"]}]})
...
05:06:18.9600029 - be3e5a90-a8a1-4509-a8e7-58ba4766d615 - WS: OnMessage({})
我认为第一个是正常的。但是第二个例子,我认为我的代码没有问题。
这是我的代码的一部分。
客户方:
signalr.hubProxy.On<List<People>>("getPeople", getPeople);
signalr.hubProxy.Invoke("QueryPeople", "abcdefg");
public void getPeople(List<People> peopleList)
{
Invoke(new Action<List<People>>(listPeople), peopleList);
}
public void listPeople(List<People> peopleList)
{
listView1.BeginUpdate();
foreach (People person in peopleList)
{
ListViewItem item = new ListViewItem();
item.Name = person .peopleCode;
item.Text = person .peopleName;
item.SubItems.Add(person.recentDate);
item.SubItems.Add(person.Criteria);
item.SubItems.Add(person.peopleBirthday);
p_Memo.Add(person.peopleCode, person.peopleMemo);
listView1.Items.Add(item);
}
listView1.EndUpdate();
}
服务器端:
public void QueryPeople(string sessionId)
{
if (sessionId == "abcdefg")
{
List<People> PeopleList = new List<People>();
person1.peopleCode = "a";
person1.peopletName = "b";
person1.recentDate = "c";
person1.Criteria = "d";
person1.peopleBirthday = "h";
person.peopleCode = "i";
person2.peopleName = "j";
person2.recentDate = "k";
person2.Criteria = "l";
person2.peopleBirthday = "p";
PeopleList.Add(person1);
PeopleList.Add(person2);
Clients.Caller.getPeople(PeopleList);
}
}
此后(部分客户端代码),
signalr.hubProxy.Invoke("QueryPeople", "abcdefg");
日志中的每条消息都更改为WS:OnMessage({})