// 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 WebChannelTransport implementation serves as the factory * for WebChannel, 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. * @return {!goog.net.WebChannel} the newly created WebChannel instance. */ goog.net.WebChannelTransport.prototype.createWebChannel = goog.abstractMethod;