顯示具有 SignalR 標籤的文章。 顯示所有文章
顯示具有 SignalR 標籤的文章。 顯示所有文章

2013年9月17日 星期二

ASP.NET SignalR – Clients

Outline

1. Hub Consumers

2. jQuery Clients

3. .NET Clients

 

1. Hub Consumers

image

image

image

 

2. jQuery Client

image

First approach:

jQuery with Proxy – part I

image

image

image

Demo 1 – UI preparation

image

image

image

1. Must include both javascript files, jQuery.js & SignalR.js BEFORE 2. SignalR/Hubs

2. Must include SignalR/Hubs

3. Include personal javascript file

 

Demo 2 – SignalR Utilities (signalr.exe) to generate server.js file

image

image

image

image

 

jQuery with Proxy – part II

image

image

 

jQuery with Proxy – part III

image

image

image

image

 

Demo 3 – Chat.js

image

Explain above 3 points:

1. chat.client.newMessage –> newMessage() is a client event method that can be called from server side. Define client behavior first

image

2. Once button click, trigger server side event by this line of code chat.server.sendMessage(xxx), so all clients will run client side event newMessage() which defined in previous step

3. Enforce to use longPolling as transport negociation protocal and start hub connection

 

image

 

Demo – Join Group

image

image

image

image

image

Demo – Monitor (test fail)

image

image

image

image

 

Second approach:

jQuery without Proxy File

image

image

image

image

Demo

image

image

image

 

3. .NET Client

image

image

image

image

Demo – Win Form

image

image

image

image

image

 

Summary

image

2013年9月16日 星期一

ASP.NET SignalR – Hubs

 

Hubs Concept

image

image

image

Convention: 慣例,常規,習俗,公約,協定。For example, Coding Convention.

image

 

Programming Model

image

Context: 文章脈絡,事件的來龍去脈

image

 

Demo

image

image

image

image

 

Hubs Protocol

image

image

image

image

 

 

1. .NET 4.0 doesn’t support WebSocket, so it will use SSE (Server Send Event) as second priority

2. .NET 4.5 support WebSocket, so it will directly use it as first priority

image

image

 

Step 1: Negotiate, try WebSockets

Step 2.1: Connect, with WebSockets, but fail

Step 2.2: Connect again, with SSE, success

image

image

 

If change <httpRuntime targetFramework=”4.5” /> in web.config, WebSocket will be used

image

 

Force using LongPolling as transport negociation

image

image

 

Pushing Data: Clients

image

 

image

Clients.Others

Clients.AllExcept(Context.ConnectionId)

above 2 are equal too.

 

Pushing Data: Groups

image

image

 

Demo – JoinRoom(), SendMessageToRoom()

image

image

 

Hub Lifecycle

image

image

 

Demo

image

image

New a class, MonitorHub.cs

image

GlobalHost.ConnectionManager.GetHubContext<T>();

image

 

Summary

image