|
442 | 442 | <span class="pl-k">@Override</span>
|
443 | 443 | <span class="pl-k">public</span> <span class="pl-k">Object</span>[] <span class="pl-en">invoke</span>(<span class="pl-k">Map<<span class="pl-smi">String</span>, <span class="pl-smi">Object</span>></span> <span class="pl-v">request</span>) {
|
444 | 444 | <span class="pl-smi">NginxJavaRequest</span> r <span class="pl-k">=</span> (<span class="pl-smi">NginxJavaRequest</span>) request;
|
445 |
| - <span class="pl-smi">NginxHandler</span> handler <span class="pl-k">=</span> r<span class="pl-k">.</span>handler(); |
446 |
| - <span class="pl-smi">NginxHttpServerChannel</span> channel <span class="pl-k">=</span> handler<span class="pl-k">.</span>hijack(r, <span class="pl-c1">true</span>); |
| 445 | + <span class="pl-smi">NginxHttpServerChannel</span> channel <span class="pl-k">=</span> r<span class="pl-k">.</span>hijack(<span class="pl-c1">true</span>); |
447 | 446 | channel<span class="pl-k">.</span>addListener(channel, <span class="pl-k">new</span> <span class="pl-k">ChannelListener<<span class="pl-smi">NginxHttpServerChannel</span>></span>() {
|
448 | 447 | <span class="pl-k">@Override</span>
|
449 | 448 | <span class="pl-k">public</span> <span class="pl-k">void</span> <span class="pl-en">onClose</span>(<span class="pl-smi">NginxHttpServerChannel</span> <span class="pl-v">data</span>) {
|
@@ -530,9 +529,11 @@ <h2>
|
530 | 529 | <h2>
|
531 | 530 | <a id="user-content-38--sever-side-websocket" class="anchor" href="#38--sever-side-websocket" aria-hidden="true"><span class="octicon octicon-link"></span></a>3.8 Sever Side WebSocket</h2>
|
532 | 531 |
|
533 |
| -<p>Sever Side WebSocket, like long polling/Server Sent Events, also use hijack API to get a NginxHttpServerChannel to send / receive messages.</p> |
| 532 | +<h3> |
| 533 | +<a id="user-content-381-echo-service-example" class="anchor" href="#381-echo-service-example" aria-hidden="true"><span class="octicon octicon-link"></span></a>3.8.1 Echo Service Example</h3> |
534 | 534 |
|
535 |
| -<p>Here we give a echo service example.</p> |
| 535 | +<p>Sever Side WebSocket, like long polling/Server Sent Events, also use hijack API to get a NginxHttpServerChannel to send / receive messages. |
| 536 | +Here we give a echo service example.</p> |
536 | 537 |
|
537 | 538 | <p>In nginx.conf</p>
|
538 | 539 |
|
|
571 | 572 | <span class="pl-k">@Override</span>
|
572 | 573 | <span class="pl-k">public</span> <span class="pl-k">Object</span>[] <span class="pl-en">invoke</span>(<span class="pl-k">Map<<span class="pl-smi">String</span>, <span class="pl-smi">Object</span>></span> <span class="pl-v">request</span>) {
|
573 | 574 | <span class="pl-smi">NginxJavaRequest</span> r <span class="pl-k">=</span> (<span class="pl-smi">NginxJavaRequest</span>)request;
|
574 |
| - <span class="pl-smi">NginxHttpServerChannel</span> sc <span class="pl-k">=</span> r<span class="pl-k">.</span>handler()<span class="pl-k">.</span>hijack(r, <span class="pl-c1">true</span>); |
| 575 | + <span class="pl-smi">NginxHttpServerChannel</span> sc <span class="pl-k">=</span> r<span class="pl-k">.</span>hijack(<span class="pl-c1">true</span>); |
575 | 576 | sc<span class="pl-k">.</span>addListener(sc, <span class="pl-k">new</span> <span class="pl-k">MessageAdapter<<span class="pl-smi">NginxHttpServerChannel</span>></span>() {
|
576 | 577 | <span class="pl-k">int</span> total <span class="pl-k">=</span> <span class="pl-c1">0</span>;
|
577 | 578 | <span class="pl-k">@Override</span>
|
|
616 | 617 | }
|
617 | 618 |
|
618 | 619 | }
|
| 620 | + |
| 621 | +###<span class="pl-c1">3.8</span><span class="pl-k">.</span><span class="pl-c1">1</span> <span class="pl-smi">Use</span> <span class="pl-smi">Access</span> <span class="pl-smi">Handler</span> <span class="pl-smi">For</span> <span class="pl-smi">WebSocket</span> <span class="pl-smi">Security</span> |
619 | 622 | </pre></div>
|
620 | 623 |
|
621 | 624 | <h2>
|
|
624 | 627 | <p>in nginx.conf</p>
|
625 | 628 |
|
626 | 629 | <div class="highlight highlight-nginx"><pre> <span class="pl-k">location</span> <span class="pl-en">/jersey </span>{
|
| 630 | + |
| 631 | + <span class="pl-k">content_handler_type</span> java; |
627 | 632 | <span class="pl-k">content_handler_name</span> <span class="pl-s">'nginx.clojure.bridge.NginxBridgeHandler'</span>;
|
628 | 633 | <span class="pl-k">content_handler_property</span> system.m2rep <span class="pl-s">'/home/who/.m2/repository'</span>;
|
629 | 634 |
|
|
701 | 706 |
|
702 | 707 | <div class="highlight highlight-nginx"><pre> <span class="pl-k">location</span> <span class="pl-en">/ </span>{
|
703 | 708 |
|
| 709 | + <span class="pl-k">content_handler_type</span> java; |
704 | 710 | <span class="pl-k">content_handler_name</span> <span class="pl-s">'nginx.clojure.bridge.NginxBridgeHandler'</span>;
|
705 | 711 |
|
706 | 712 | <span class="pl-c">##Tomcat 8 installation path</span>
|
|
0 commit comments