我写了这个简单的代码——当连接时,应该产生
- “第一的 !”
- “欢迎”
- 3 条消息(计时器)
这是代码:
int i = 0;
protected override Task OnConnected(IRequest request, string connectionId)
{
//first message
Connection.Send(connectionId, "FIRST !"); //first message
//last messages
Timer _timer = new Timer(RunMe, new {con = connectionId, req = request}, 2000, 1000);
//second message
return Connection.Send(connectionId, "Welcome!"); //second message
}
void RunMe(dynamic state)
{
if (i < 3)
{
Connection.Send((string) state.con, "Loop " + i);
i++;
}
}
这里是JS代码(内部document.ready
块):
...
connection.received(function (data)
{
$('#messages').append('<li><b>data received = </b>' + data +
"<b>ConnectionId =</b> " + connection.id +
'<b>MessageId = </b>' + connection.messageId + '</li>');
});
我确实得到了所有的回应。
但是如果我按 f5(refresh) - 这些是典型的响应:
再次刷新,
似乎第一条消息永远不会得到messageID
:
后来的消息有时会得到 messageID,有时不会。
ps
我心想,也许是初始化速度的问题,所以我试了一下:
再一次,回应是:
- 这里发生了什么 ?为什么第一条消息没有得到 messageID ?我该如何解决?