рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рд╕рд┐рдЧреНрдирд▓рдЖрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рддреНрд╡рд░рд┐рдд рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрджрд┐рдо рдЪреИрдЯ рд▓рд┐рдЦреЗрдВрдЧреЗ
рдЯреНрд░реЗрдирд┐рдВрдЧ
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Visual Studio рдореЗрдВ рдПрдХ рд░рд┐рдХреНрдд ASP.NET рдЦрд╛рд▓реА рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдБред
рдЦреБрдж рд╕рд┐рдЧреНрдирд▓рдЖрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдиреВрдЧреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╣реА рд▓рд╛рдЗрди рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ:
Install-Package SignalR
рдпрд╣ jQuery рдФрд░ рд╕рд┐рдЧреНрдирд▓рдЖрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЬреЛрдбрд╝реЗрдЧрд╛, рд╕рд╛рде рд╣реА рд╕рд┐рдЧреНрдирд▓рдЖрд░ рдбреАрдПрд▓рдПрд╕ рдФрд░ рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЕрдиреНрдп рдбреАрдПрд▓рдПрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджрд░реНрдн рд▓рд┐рдВрдХ рднреАред
рд╕рд░реНрд╡рд░ рдХреЛрдб рд▓рд┐рдЦреЗрдВ
рдПрдХ рдордирдорд╛рдирд╛ рд╡рд░реНрдЧ рдЬреЛрдбрд╝реЗрдВ - рдореИрдВ рдЗрд╕реЗ рдЪреИрдЯ рдХрд╣реВрдВрдЧрд╛, рдЗрд╕реЗ рд╕рд┐рдЧреНрдирд▓ рдЖрд░.рд╣рдмреНрд╕ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣рдм рд╡рд░реНрдЧ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
public class Chat : Hub { public void Send(dynamic message) { Clients.AddChatMessage(message); } }
рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдореЗрдВ, рдЖрдк рдХрд┐рд╕реА рднреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рдзрд┐ рдХреЛ рдХрд┐рд╕реА рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдпреЗ рд╕рднреА рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╕рдВрдмрдВрдзрд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЙрдХреНрд╕реА рдХреНрд▓рд╛рд╕ рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг рднреЗрдЬреЗрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рдЧрддрд┐рд╢реАрд▓ рд╣реЛрдЧрд╛ред
рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдореВрд▓ рд╡рд░реНрдЧ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд╡рд╕реНрддреБ рд╣реИ - рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рдордирдорд╛рдиреЗ рддрд░реАрдХреЗ рд╕реЗ рдХреЙрд▓ рдХрд░рдирд╛ - рдЗрд╕реЗ рд╕рднреА рдХрдиреЗрдХреНрдЯреЗрдб рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕рдорд╛рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░рдирд╛ред
рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рд▓рд┐рдЦреЗрдВ
рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдорд╛рд░реНрдХрдЕрдк рдХреЗ рд╕рд╛рде HTML рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдЪреИрдЯред html рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЬреЛрдбрд╝реЗрдВ
<input type="text" id="msg" /> <input type="button" id="broadcast" value="broadcast" /> <ul id="messages"> </ul>
signalr.js рдХреЗ рдмрд╛рдж рдЬреЛрдбрд╝рд╛ рдЬрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП / рд╕рд┐рдЧреНрдирд▓ / рд╣рдм рдХреЗ рд╕рд╛рде рдЖрд╡рд╢реНрдпрдХ рдЬреЗрдПрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝реЗрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
<script src="http://code.jquery.com/jquery-1.7.min.js" type="text/javascript"></script> <script src="/Scripts/jquery.signalR.min.js" type="text/javascript"></script> <script src="/signalr/hubs" type="text/javascript"></script>
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧреНрд░рд╛рд╣рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реА:
<script type="text/javascript"> $(function () { // var chat = $.connection.chat; // , , // chat.AddChatMessage = function (msg) { $("#messages").append("<li>" + msg.name + " : " + msg.text + "</li>"); }; // - $("#broadcast").click(function () { var msg = { 'name': $.browser.version, 'text': $('#msg').val() }; chat.send(msg); }); // $.connection.hub.start(); }); </script>
рдореИрдВрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк
рд╕рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдкреБрд╢-рд╕реНрдЯрд╛рдЗрд▓ рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИ:
рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп
рдЯрд╛рдЗрдк рдХрд░рдХреЗ рд╕рд┐рдЧреНрдирд▓рдЖрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
Install-Package SignalR.Sample
рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд┐рдП рдЧрдП рд▓реЗрдЦ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ -
рдпрд╣рд╛рдВрдирдпрд╛ рд╕рд╛рд▓ рдореБрдмрд╛рд░рдХ рд╣реЛ 2012!