国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

java-netty-study-2-netty 服務(wù)端

jsliang / 2183人閱讀

摘要:服務(wù)端編寫部分代碼說明和的線程和里面都是一個線程分配一個。功能接收客戶端的數(shù)據(jù)功能返回數(shù)據(jù)給客戶端功能可以在這個方法里監(jiān)控一個客戶端每秒發(fā)送了多少請求,避免惡意的客戶端攻擊。

Netty 服務(wù)端編寫 1、bootStrap 部分
        final Bootstrap bootstrap = new ServerBootstrap();
        ExecutorService boss = Executors.newCachedThreadPool();
        ExecutorService worker = Executors.newCachedThreadPool();

        bootstrap.setFactory(new NioServerSocketChannelFactory(boss, worker));

        bootstrap.setPipelineFactory(new ChannelPipelineFactory() {
            public ChannelPipeline getPipeline() throws Exception {
                
                final ChannelPipeline pipeline = Channels.pipeline();
                pipeline.addLast("decoder", new StringDecoder());
                pipeline.addLast("encoder",new StringEncoder());
                pipeline.addLast("messageHandler",new ServerHandler());
                return pipeline;
            }
        });
        
        ((ServerBootstrap) bootstrap).bind(new InetSocketAddress(10101));

代碼說明

1.1 boss VS worker

boss和worker的線程

boss和worker 里面都是一個線程分配一個Selector。

boss和worker的功能

boss的功能主要是處理連接,worker的功能是Channel的讀寫

2、客戶端部分 2.1 handler繼承父類

2.2 Handler 常用方法說明 2.2.1 messageReceived
        //1、接收數(shù)據(jù)
        /*
        沒有StringDecoder時,顯示字符串消息
        final ChannelBuffer message = (ChannelBuffer) e.getMessage();
        final byte[] array = message.array();
        final String msg = new String(array);
        System.out.println("message is :" + msg);
        */

        //有StringDecoder
        System.out.println(e.getMessage());

        //2、返回數(shù)據(jù)
        //返回數(shù)據(jù)給客戶端
        /*
        沒有StringEnCoder
        final ChannelBuffer channelBuffer = ChannelBuffers.copiedBuffer("hi, i"m 
        server".getBytes());
        ctx.getChannel().write(channelBuffer);
        */
        //有StringEnCoder
        ctx.getChannel().write("hi, i"m server");

        //3、拋出異常,看exceptionCaught 方法
        //System.out.println(1/0);

        super.messageReceived(ctx, e)

代碼說明

關(guān)于StringEncoder,和StringDecoder
在Server中添加了上述的encoder和decoder,我們就可以直接接收和返回String類型的數(shù)據(jù)給客戶端。看類的繼承關(guān)系:


截圖說明
Netty 中和客戶端的數(shù)據(jù)傳輸有個上行和下行,UpStream,DownStream. 我們注意到Handler的父類中也同時繼承了這兩個類。

-功能1

 接收客戶端的數(shù)據(jù)

-功能2

 返回數(shù)據(jù)給客戶端

-功能3

 可以在這個方法里監(jiān)控一個客戶端每秒發(fā)送了多少請求,避免惡意的客戶端攻擊。可以獲取客戶端ip,調(diào)用Channel的close方法關(guān)閉連接。

備注:
接收和返回數(shù)據(jù)異常,會調(diào)用exceptionCaught

2.2.2 exceptionCaught

功能1
messageReceived方法處理數(shù)據(jù)拋出異常,這個方法會調(diào)用

2.2.3 channelConnected

功能1

一個用戶連接了,加載這個用戶的相關(guān)數(shù)據(jù)到緩存中

2.2.4 channelDisconnected VS channelClosed

功能1

比如做游戲,一個玩家上線了,建立連接,我們就要把玩家的一些數(shù)據(jù)讀取到緩存(redis/memcached)中,當(dāng)玩家下線了,這兩個方法調(diào)用,那么清空緩存中的數(shù)據(jù)。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/71899.html

相關(guān)文章

  • java-netty-study-2-netty 客戶

    Netty 客戶端 1、Code 代碼:https://github.com/chengbingh... 服務(wù)類 線程池 socket 工廠 管道工廠 連接服務(wù)端 發(fā)送數(shù)據(jù)

    JouyPub 評論0 收藏0
  • React 服務(wù)渲染完美的解決方案

    摘要:服務(wù)端渲染兩種方式根據(jù)上文介紹對服務(wù)端渲染利弊有所了解,我們可以根據(jù)利弊權(quán)衡取舍,最近在做服務(wù)端渲染的項(xiàng)目,找到多種服務(wù)端渲染解決方案,大致分為兩類。第一種方式傳統(tǒng)方式服務(wù)端渲染,解決用戶體驗(yàn)和更好的,有諸多工具使用這種方式如的的等。 最近在開發(fā)一個服務(wù)端渲染工具,通過一篇小文大致介紹下服務(wù)端渲染,和服務(wù)端渲染的方式方法。在此文后面有兩中服務(wù)端渲染方式的構(gòu)思,根據(jù)你對服務(wù)端渲染的利弊權(quán)...

    DesGemini 評論0 收藏0
  • React同構(gòu)直出優(yōu)化總結(jié)

    摘要:同構(gòu)的關(guān)鍵要素完善的屬性及生命周期與客戶端的時機(jī)是同構(gòu)的關(guān)鍵。的一致性在前后端渲染相同的,將輸出一致的結(jié)構(gòu)。以上便是在同構(gòu)服務(wù)端渲染的提供的基礎(chǔ)條件。可以將封裝至的中,在服務(wù)端上生成隨機(jī)數(shù)并傳入到這個中,從而保證隨機(jī)數(shù)在客戶端和服務(wù)端一致。 原文地址 React 的實(shí)踐從去年在 PC QQ家校群開始,由于 PC 上的網(wǎng)絡(luò)及環(huán)境都相當(dāng)好,所以在使用時可謂一帆風(fēng)順,偶爾遇到點(diǎn)小磕絆,也能夠...

    alaege 評論0 收藏0
  • 干貨實(shí)例:什么是React服務(wù)渲染?

    摘要:今天分享一篇公司大佬的文章,非常厲害的大神崇拜臉,講講服務(wù)端渲染。服務(wù)端渲染,它到底用了什么原理呢服務(wù)端渲染原理服務(wù)端渲染的方式有很多,主流的服務(wù)端語言為使用渲染。 富婆來報道,今天想問題想不出來,隨手抓了一下頭發(fā),沒想到啊沒想到,我那濃(mei)密(sheng)茂(ji)盛(gen)的秀發(fā)又少了好幾根,一定要改掉這個想不出來問題就揪頭發(fā)的壞習(xí)慣。今天分享一篇公司大佬的文章,非常厲害的...

    Jason_Geng 評論0 收藏0
  • 【翻譯】Web渲染概述

    摘要:由我所在的團(tuán)隊(duì)共同翻譯完成,并發(fā)布在前端技術(shù)公眾號方凳雅集上,轉(zhuǎn)載于此。在移動端,客戶端渲染很難獲得并保持一個較快的渲染速度。使用技術(shù)進(jìn)行服務(wù)端渲染的主要問題在于它會對可交互時間有明顯的負(fù)面影響,盡管它縮短了首次繪制時間 本文簡單介紹了web應(yīng)用各種渲染方案,其中包括客戶端渲染、服務(wù)器端渲染等各種渲染方案。文章翻譯自:https://developers.google.com...。由...

    RobinQu 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<