module-src_server-Server.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>JSDoc: Class: Server</title>
  6. <script src="scripts/prettify/prettify.js"> </script>
  7. <script src="scripts/prettify/lang-css.js"> </script>
  8. <!--[if lt IE 9]>
  9. <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  10. <![endif]-->
  11. <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
  12. <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
  13. </head>
  14. <body>
  15. <div id="main">
  16. <h1 class="page-title">Class: Server</h1>
  17. <section>
  18. <header>
  19. <h2>
  20. <span class="ancestors"><a href="module-src_server.html">src/server</a>~</span>Server</h2>
  21. </header>
  22. <article>
  23. <div class="container-overview">
  24. <h4 class="name" id="Server"><span class="type-signature"></span>new Server<span class="signature">(options<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
  25. <div class="description">
  26. Constructs a server object that stores request handlers and delegates
  27. incoming requests to those handlers
  28. </div>
  29. <h5>Parameters:</h5>
  30. <table class="params">
  31. <thead>
  32. <tr>
  33. <th>Name</th>
  34. <th>Type</th>
  35. <th>Attributes</th>
  36. <th class="last">Description</th>
  37. </tr>
  38. </thead>
  39. <tbody>
  40. <tr>
  41. <td class="name"><code>options</code></td>
  42. <td class="type">
  43. <span class="param-type">Object</span>
  44. </td>
  45. <td class="attributes">
  46. &lt;optional><br>
  47. </td>
  48. <td class="description last">Options that should be passed to the internal server
  49. implementation</td>
  50. </tr>
  51. </tbody>
  52. </table>
  53. <dl class="details">
  54. <dt class="tag-source">Source:</dt>
  55. <dd class="tag-source"><ul class="dummy"><li>
  56. <a href="src_server.js.html">src/server.js</a>, <a href="src_server.js.html#line583">line 583</a>
  57. </li></ul></dd>
  58. </dl>
  59. </div>
  60. <h3 class="subsection-title">Methods</h3>
  61. <h4 class="name" id="addProtoService"><span class="type-signature"></span>addProtoService<span class="signature">(service, implementation)</span><span class="type-signature"></span></h4>
  62. <div class="description">
  63. Add a proto service to the server, with a corresponding implementation
  64. </div>
  65. <h5>Parameters:</h5>
  66. <table class="params">
  67. <thead>
  68. <tr>
  69. <th>Name</th>
  70. <th>Type</th>
  71. <th class="last">Description</th>
  72. </tr>
  73. </thead>
  74. <tbody>
  75. <tr>
  76. <td class="name"><code>service</code></td>
  77. <td class="type">
  78. <span class="param-type">Protobuf.Reflect.Service</span>
  79. </td>
  80. <td class="description last">The proto service descriptor</td>
  81. </tr>
  82. <tr>
  83. <td class="name"><code>implementation</code></td>
  84. <td class="type">
  85. <span class="param-type">Object.&lt;String, function()></span>
  86. </td>
  87. <td class="description last">Map of method names to
  88. method implementation for the provided service.</td>
  89. </tr>
  90. </tbody>
  91. </table>
  92. <dl class="details">
  93. <dt class="tag-source">Source:</dt>
  94. <dd class="tag-source"><ul class="dummy"><li>
  95. <a href="src_server.js.html">src/server.js</a>, <a href="src_server.js.html#line761">line 761</a>
  96. </li></ul></dd>
  97. </dl>
  98. <h4 class="name" id="addService"><span class="type-signature"></span>addService<span class="signature">(service, implementation)</span><span class="type-signature"></span></h4>
  99. <div class="description">
  100. Add a service to the server, with a corresponding implementation. If you are
  101. generating this from a proto file, you should instead use
  102. addProtoService.
  103. </div>
  104. <h5>Parameters:</h5>
  105. <table class="params">
  106. <thead>
  107. <tr>
  108. <th>Name</th>
  109. <th>Type</th>
  110. <th class="last">Description</th>
  111. </tr>
  112. </thead>
  113. <tbody>
  114. <tr>
  115. <td class="name"><code>service</code></td>
  116. <td class="type">
  117. <span class="param-type">Object.&lt;String, *></span>
  118. </td>
  119. <td class="description last">The service descriptor, as
  120. <a href="module-src_common.html#.getProtobufServiceAttrs">module:src/common.getProtobufServiceAttrs</a> returns</td>
  121. </tr>
  122. <tr>
  123. <td class="name"><code>implementation</code></td>
  124. <td class="type">
  125. <span class="param-type">Object.&lt;String, function()></span>
  126. </td>
  127. <td class="description last">Map of method names to
  128. method implementation for the provided service.</td>
  129. </tr>
  130. </tbody>
  131. </table>
  132. <dl class="details">
  133. <dt class="tag-source">Source:</dt>
  134. <dd class="tag-source"><ul class="dummy"><li>
  135. <a href="src_server.js.html">src/server.js</a>, <a href="src_server.js.html#line716">line 716</a>
  136. </li></ul></dd>
  137. </dl>
  138. <h4 class="name" id="bind"><span class="type-signature"></span>bind<span class="signature">(port, creds<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
  139. <div class="description">
  140. Binds the server to the given port, with SSL enabled if creds is given
  141. </div>
  142. <h5>Parameters:</h5>
  143. <table class="params">
  144. <thead>
  145. <tr>
  146. <th>Name</th>
  147. <th>Type</th>
  148. <th>Attributes</th>
  149. <th class="last">Description</th>
  150. </tr>
  151. </thead>
  152. <tbody>
  153. <tr>
  154. <td class="name"><code>port</code></td>
  155. <td class="type">
  156. <span class="param-type">string</span>
  157. </td>
  158. <td class="attributes">
  159. </td>
  160. <td class="description last">The port that the server should bind on, in the format
  161. "address:port"</td>
  162. </tr>
  163. <tr>
  164. <td class="name"><code>creds</code></td>
  165. <td class="type">
  166. <span class="param-type"><a href="global.html#ServerCredentials">ServerCredentials</a></span>
  167. </td>
  168. <td class="attributes">
  169. &lt;optional><br>
  170. </td>
  171. <td class="description last">Server credential object to be used for
  172. SSL. Pass an insecure credentials object for an insecure port.</td>
  173. </tr>
  174. </tbody>
  175. </table>
  176. <dl class="details">
  177. <dt class="tag-source">Source:</dt>
  178. <dd class="tag-source"><ul class="dummy"><li>
  179. <a href="src_server.js.html">src/server.js</a>, <a href="src_server.js.html#line777">line 777</a>
  180. </li></ul></dd>
  181. </dl>
  182. <h4 class="name" id="forceShutdown"><span class="type-signature"></span>forceShutdown<span class="signature">()</span><span class="type-signature"></span></h4>
  183. <div class="description">
  184. Forcibly shuts down the server. The server will stop receiving new calls
  185. and cancel all pending calls. When it returns, the server has shut down.
  186. This method is idempotent with itself and tryShutdown, and it will trigger
  187. any outstanding tryShutdown callbacks.
  188. </div>
  189. <dl class="details">
  190. <dt class="tag-source">Source:</dt>
  191. <dd class="tag-source"><ul class="dummy"><li>
  192. <a href="src_server.js.html">src/server.js</a>, <a href="src_server.js.html#line655">line 655</a>
  193. </li></ul></dd>
  194. </dl>
  195. <h4 class="name" id="register"><span class="type-signature"></span>register<span class="signature">(name, handler, serialize, deserialize, type)</span><span class="type-signature"> &rarr; {boolean}</span></h4>
  196. <div class="description">
  197. Registers a handler to handle the named method. Fails if there already is
  198. a handler for the given method. Returns true on success
  199. </div>
  200. <h5>Parameters:</h5>
  201. <table class="params">
  202. <thead>
  203. <tr>
  204. <th>Name</th>
  205. <th>Type</th>
  206. <th class="last">Description</th>
  207. </tr>
  208. </thead>
  209. <tbody>
  210. <tr>
  211. <td class="name"><code>name</code></td>
  212. <td class="type">
  213. <span class="param-type">string</span>
  214. </td>
  215. <td class="description last">The name of the method that the provided function should
  216. handle/respond to.</td>
  217. </tr>
  218. <tr>
  219. <td class="name"><code>handler</code></td>
  220. <td class="type">
  221. <span class="param-type">function</span>
  222. </td>
  223. <td class="description last">Function that takes a stream of request values and
  224. returns a stream of response values</td>
  225. </tr>
  226. <tr>
  227. <td class="name"><code>serialize</code></td>
  228. <td class="type">
  229. <span class="param-type">function</span>
  230. </td>
  231. <td class="description last">Serialization function for responses</td>
  232. </tr>
  233. <tr>
  234. <td class="name"><code>deserialize</code></td>
  235. <td class="type">
  236. <span class="param-type">function</span>
  237. </td>
  238. <td class="description last">Deserialization function for requests</td>
  239. </tr>
  240. <tr>
  241. <td class="name"><code>type</code></td>
  242. <td class="type">
  243. <span class="param-type">string</span>
  244. </td>
  245. <td class="description last">The streaming type of method that this handles</td>
  246. </tr>
  247. </tbody>
  248. </table>
  249. <dl class="details">
  250. <dt class="tag-source">Source:</dt>
  251. <dd class="tag-source"><ul class="dummy"><li>
  252. <a href="src_server.js.html">src/server.js</a>, <a href="src_server.js.html#line673">line 673</a>
  253. </li></ul></dd>
  254. </dl>
  255. <h5>Returns:</h5>
  256. <div class="param-desc">
  257. True if the handler was set. False if a handler was already
  258. set for that name.
  259. </div>
  260. <dl>
  261. <dt>
  262. Type
  263. </dt>
  264. <dd>
  265. <span class="param-type">boolean</span>
  266. </dd>
  267. </dl>
  268. <h4 class="name" id="start"><span class="type-signature"></span>start<span class="signature">()</span><span class="type-signature"></span></h4>
  269. <div class="description">
  270. Start the server and begin handling requests
  271. </div>
  272. <h5>This:</h5>
  273. <ul><li><a href="global.html#Server">Server</a></li></ul>
  274. <dl class="details">
  275. <dt class="tag-source">Source:</dt>
  276. <dd class="tag-source"><ul class="dummy"><li>
  277. <a href="src_server.js.html">src/server.js</a>, <a href="src_server.js.html#line593">line 593</a>
  278. </li></ul></dd>
  279. </dl>
  280. <h4 class="name" id="tryShutdown"><span class="type-signature"></span>tryShutdown<span class="signature">(callback)</span><span class="type-signature"></span></h4>
  281. <div class="description">
  282. Gracefully shuts down the server. The server will stop receiving new calls,
  283. and any pending calls will complete. The callback will be called when all
  284. pending calls have completed and the server is fully shut down. This method
  285. is idempotent with itself and forceShutdown.
  286. </div>
  287. <h5>Parameters:</h5>
  288. <table class="params">
  289. <thead>
  290. <tr>
  291. <th>Name</th>
  292. <th>Type</th>
  293. <th class="last">Description</th>
  294. </tr>
  295. </thead>
  296. <tbody>
  297. <tr>
  298. <td class="name"><code>callback</code></td>
  299. <td class="type">
  300. <span class="param-type">function</span>
  301. </td>
  302. <td class="description last">The shutdown complete callback</td>
  303. </tr>
  304. </tbody>
  305. </table>
  306. <dl class="details">
  307. <dt class="tag-source">Source:</dt>
  308. <dd class="tag-source"><ul class="dummy"><li>
  309. <a href="src_server.js.html">src/server.js</a>, <a href="src_server.js.html#line645">line 645</a>
  310. </li></ul></dd>
  311. </dl>
  312. </article>
  313. </section>
  314. </div>
  315. <nav>
  316. <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-src_client.html">src/client</a></li><li><a href="module-src_common.html">src/common</a></li><li><a href="module-src_credentials.html">src/credentials</a></li><li><a href="module-src_metadata.html">src/metadata</a></li><li><a href="module-src_server.html">src/server</a></li></ul><h3>Classes</h3><ul><li><a href="module-src_client.makeClientConstructor-Client.html">Client</a></li><li><a href="module-src_client-ClientDuplexStream.html">ClientDuplexStream</a></li><li><a href="module-src_client-ClientReadableStream.html">ClientReadableStream</a></li><li><a href="module-src_client-ClientWritableStream.html">ClientWritableStream</a></li><li><a href="module-src_metadata-Metadata.html">Metadata</a></li><li><a href="module-src_server-Server.html">Server</a></li><li><a href="module-src_server-ServerDuplexStream.html">ServerDuplexStream</a></li><li><a href="module-src_server-ServerReadableStream.html">ServerReadableStream</a></li><li><a href="module-src_server-ServerWritableStream.html">ServerWritableStream</a></li></ul><h3>Global</h3><ul><li><a href="global.html#callError">callError</a></li><li><a href="global.html#credentials">credentials</a></li><li><a href="global.html#getClientChannel">getClientChannel</a></li><li><a href="global.html#load">load</a></li><li><a href="global.html#loadObject">loadObject</a></li><li><a href="global.html#makeGenericClientConstructor">makeGenericClientConstructor</a></li><li><a href="global.html#Metadata">Metadata</a></li><li><a href="global.html#propagate">propagate</a></li><li><a href="global.html#Server">Server</a></li><li><a href="global.html#ServerCredentials">ServerCredentials</a></li><li><a href="global.html#status">status</a></li><li><a href="global.html#waitForClientReady">waitForClientReady</a></li><li><a href="global.html#writeFlags">writeFlags</a></li></ul>
  317. </nav>
  318. <br class="clear">
  319. <footer>
  320. Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.0</a> on Wed May 11 2016 18:17:25 GMT-0700 (PDT)
  321. </footer>
  322. <script> prettyPrint(); </script>
  323. <script src="scripts/linenumber.js"> </script>
  324. </body>
  325. </html>