signalr OnMessage数据为空

时间:2016-10-29 05:18:14

标签: c# .net signalr winsock

在我调用某个服务器方法后,来自客户端的每条消息都无效。 这是客户日志的一部分。

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({})

0 个答案:

没有答案