| // Copyright 2013 The Closure Library Authors. All Rights Reserved. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS-IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| /** |
| * @fileoverview Transport support for WebChannel. |
| * |
| * The <code>WebChannelTransport</code> implementation serves as the factory |
| * for <code>WebChannel</code>, which offers an abstraction for |
| * point-to-point socket-like communication similar to what BrowserChannel |
| * or HTML5 WebSocket offers. |
| * |
| */ |
| |
| goog.provide('goog.net.WebChannelTransport'); |
| |
| |
| |
| /** |
| * A WebChannelTransport instance represents a shared context of logical |
| * connectivity between a browser client and a remote origin. |
| * |
| * Over a single WebChannelTransport instance, multiple WebChannels may be |
| * created against different URLs, which may all share the same |
| * underlying connectivity (i.e. TCP connection) whenever possible. |
| * |
| * When multi-domains are supported, such as CORS, multiple origins may be |
| * supported over a single WebChannelTransport instance at the same time. |
| * |
| * Sharing between different window contexts such as tabs is not addressed |
| * by WebChannelTransport. Applications may choose HTML5 shared workers |
| * or other techniques to access the same transport instance |
| * across different window contexts. |
| * |
| * @interface |
| */ |
| goog.net.WebChannelTransport = function() {}; |
| |
| |
| /** |
| * The latest protocol version. The protocol version is requested |
| * from the server which is responsible for terminating the underlying |
| * wire protocols. |
| * |
| * @const |
| * @type {number} |
| * @private |
| */ |
| goog.net.WebChannelTransport.LATEST_VERSION_ = 0; |
| |
| |
| /** |
| * Create a new WebChannel instance. |
| * |
| * The new WebChannel is to be opened against the server-side resource |
| * as specified by the given URL. See {@link goog.net.WebChannel} for detailed |
| * semantics. |
| * |
| * @param {string} url The URL path for the new WebChannel instance. |
| * @param {!goog.net.WebChannel.Options=} opt_options Configuration for the |
| * new WebChannel instance. The configuration object is reusable after |
| * the new channel instance is created. |
| * @return {!goog.net.WebChannel} the newly created WebChannel instance. |
| */ |
| goog.net.WebChannelTransport.prototype.createWebChannel = goog.abstractMethod; |