Multi-Tab Support
UCWA has special support for multiple client instances in different web browser tabs. This reduces server load and allows the UCWA plugin to pool connections to a server. Application resource instances with the same culture, endpointId, type, and userAgent will internally be the same application resource, but each instance will have its own event channel.
When creating an application resource from different tabs, the underlying resource is the same, with a new event channel for each unique instanceId. If an application resource with the current instanceId does not exist the response will have a status code 201, and a new event stream will be created for that application resource. If an application resource does exist for the given instanceId then the response status code will be 200, with the existing event channel.
Sample Request
POST https://ext.vdomain.com:4443/ucwa/v1/applications HTTP/1.1
X-MS-RequiresMinResourceVersion: 2
{
"culture": "en-us",
"endpointId": "123",
"type": "Browser",
"userAgent": "foo",
"instanceId": "abc"
}
Sample Response
HTTP/1.1 201 (or 200) OK
{
"culture": "en-us",
"userAgent": "foo",
"type": "Browser",
"instanceId": "abc",
"_links": {
"self": { "href": "/ucwa/v1/applications/114149606281?instanceId=123" },
"policies": { "href": "/ucwa/v1/applications/114149606281/policies" },
"batch": { "href": "/ucwa/v1/applications/114149606281/batch" },
"events": { "href": "/ucwa/v1/applications/114149606281/events?ack=1&instanceId=abc" }
},
"_embedded": {
"me": { ... },
"people": { ... },
"onlineMeetings": { ... },
"communication": { ... }
},
"rel": "application",
"etag": "4059573954"
}
When deleting an application resource the application may have other event channels assigned to it. If there are other event channels for other instanceIds, only the event channel for the given instanceId is deleted.