<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                使用下面命令啟動服務器: ~~~ mvn -PChatServer clean package exec:exec ~~~ 其中項目中的 pom.xml 是配置了 9999 端口。你也可以通過下面的方法修改屬性 ~~~ mvn -PChatServer -Dport=1111 clean package exec:exec ~~~ 下面是控制臺的主要輸出(刪除了部分行) Listing 11.5 Compile and start the ChatServer ~~~ [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building ChatServer 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ ... [INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ netty-in-action --- [INFO] Building jar: D:/netty-in-action/chapter11/target/chat-server-1.0-SNAPSHOT.jar [INFO] [INFO] --- exec-maven-plugin:1.2.1:exec (default-cli) @ chat-server --- Starting ChatServer on port 9999 ~~~ 可以在瀏覽器中通過 http://localhost:9999 地址訪問程序。圖11.5展示了此程序在Chrome瀏覽器下的用戶界面。 Figure 11.5 WebSockets ChatServer demonstration [![](https://box.kancloud.cn/2015-08-19_55d4795c1178f.jpg)](https://github.com/waylau/essential-netty-in-action/blob/master/images/Figure%2011.5%20WebSockets%20ChatServer%20demonstration.jpg) 圖中顯示了兩個已經連接了的客戶端。第一個客戶端是通過上面的圖形界面連接的,第二個是通過Chrome瀏覽器底部的命令行連接的。 你可以注意到,這兩個客戶端都在發送消息,每條消息都會顯示在兩個客戶端上。 ### [](https://github.com/waylau/essential-netty-in-action/blob/master/NETTY%20BY%20EXAMPLE/Testing%20the%20Application.md#如何加密)如何加密? 在實際場景中,加密是必不可少的。在Netty中實現加密并不麻煩,你只需要向 ChannelPipeline 中添加 SslHandler ,然后配置一下即可。如下: Listing 11.6 Add encryption to the ChannelPipeline ~~~ public class SecureChatServerIntializer extends ChatServerInitializer { //1 private final SslContext context; public SecureChatServerIntializer(ChannelGroup group, SslContext context) { super(group); this.context = context; } @Override protected void initChannel(Channel ch) throws Exception { super.initChannel(ch); SSLEngine engine = context.newEngine(ch.alloc()); engine.setUseClientMode(false); ch.pipeline().addFirst(new SslHandler(engine)); //2 } } ~~~ 1.擴展 ChatServerInitializer 來實現加密 2.向 ChannelPipeline 中添加SslHandler 最后修改 ChatServer,使用 SecureChatServerInitializer 并傳入 SSLContext Listing 11.7 Add encryption to the ChatServer ~~~ public class SecureChatServer extends ChatServer {//1 private final SslContext context; public SecureChatServer(SslContext context) { this.context = context; } @Override protected ChannelInitializer<Channel> createInitializer(ChannelGroup group) { return new SecureChatServerIntializer(group, context); //2 } public static void main(String[] args) throws Exception{ if (args.length != 1) { System.err.println("Please give port as argument"); System.exit(1); } int port = Integer.parseInt(args[0]); SelfSignedCertificate cert = new SelfSignedCertificate(); SslContext context = SslContext.newServerContext(cert.certificate(), cert.privateKey()); final SecureChatServer endpoint = new SecureChatServer(context); ChannelFuture future = endpoint.start(new InetSocketAddress(port)); Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run() { endpoint.destroy(); } }); future.channel().closeFuture().syncUninterruptibly(); } } ~~~ 1.擴展 ChatServer 2.返回先前創建的 SecureChatServerInitializer 來啟用加密 這樣,就在所有的通信中使用了?[SSL/TLS](http://tools.ietf.org/html/rfc5246)?加密。和前面一樣,你可以使用Maven拉取應用需要的所有依賴,并啟動它,如下所示。 Listing 11.8 Start the SecureChatServer ~~~ $ mvn -PSecureChatServer clean package exec:exec [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building ChatServer 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ ... [INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ netty-in-action --- [INFO] Building jar: D:/netty-in-action/chapter11/target/chat-server-1.0-SNAPSHOT.jar [INFO] [INFO] --- exec-maven-plugin:1.2.1:exec (default-cli) @ chat-server --- Starting SecureChatServer on port 9999 ~~~ 現在你可以通過 HTTPS 地址: https://localhost:9999 來訪問SecureChatServer 了。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看