设置SignalR连接的慢启动

时间:2016-09-02 12:49:31

标签: asp.net-mvc signalr signalr-hub

使用Microsoft tutorial code设置简单的SignalR Chat Web应用程序。

select  contactid,firstname,lastname,reportsto from(select * from contactdetails order by reportsto, contactid) contact,(select @pv := '345') initialisation where   find_in_set(reportsto, @pv) > 0 and @pv := concat(@pv, ',', contactid)

在本地调试时运行正常,我可以在输入用户名后立即发送消息。但是当部署到Azure上时,在输入用户名后,我必须等待5秒才能提交新消息(没有响应点击发送按钮),但在第一条消息之后,我可以立即发送以下所有消息。

对我来说,设置初始连接(!--SignalR script to update the chat page and send messages.--> <script> $(function () { // Reference the auto-generated proxy for the hub. var chat = $.connection.chatHub; // Create a function that the hub can call back to display messages. chat.client.addNewMessageToPage = function (name, message) { // Add the message to the page. $('#discussion').append('<li><strong>' + htmlEncode(name) + '</strong>: ' + htmlEncode(message) + '</li>'); }; // Get the user name and store it to prepend to messages. $('#displayname').val(prompt('Enter your name:', '')); // Set initial focus to message input box. $('#message').focus(); // Start the connection. $.connection.hub.start().done(function () { $('#sendmessage').click(function () { // Call the Send method on the hub. chat.server.send($('#displayname').val(), $('#message').val()); // Clear text box and reset focus for next comment. $('#message').val('').focus(); }); }); }); )时看起来很慢。

这是正常的吗?如何提高这个简单应用程序的性能?

1 个答案:

答案 0 :(得分:3)

默认情况下,Azure上未启用websockets,默认情况下,客户端会尝试从webSockets开始尝试不同的传输。如果websockets不起作用,它将回退到serverSentEvents,最后回到longPolling。这需要时间。确保在Azure上打开websockets或指定您只想使用serverSentEvents和longPolling传输。