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

資訊專欄INFORMATION COLUMN

基于 socket.io 實現實時你畫我猜游戲

jsummer / 3096人閱讀

摘要:演示地址實時畫板聊天室你畫我猜聊天室圖片搶先看解釋關于是基于實現的套接字前端后端數據交互的庫,通過它的封裝,使用者可以很方便的開發,而且支持長輪詢等方法,兼容低版本瀏覽器。最后推薦一個實時的更加優秀的游戲。

前言

一直都想好好的學習運用node,一直都不知道要做什么東西,最近Java Web老師要求做個前端的應用,既然是前端應用,那肯定得是單頁應用了,而且node很適用于高并發的實時應用,所以便選擇node以及基于nodesocket.io

演示地址

實時畫板+聊天室(GitHub)

你畫我猜+聊天室(Demo | GitHub)

圖片搶先看

解釋 關于Socket.IO

Socket.IO 是基于node實現的套接字前端后端數據交互的庫,通過它的封裝,使用者可以很方便的開發,而且支持websocket/ajax 長輪詢等方法,兼容低版本瀏覽器。

基本使用如下:

服務器端

var httpd = require("http").createServer(handler);
var io = require("socket.io").listen(httpd);
function handler(req,res) {
    
}
io.sockets.on("connection",function(socket){
    //新的客戶端連接
    socket.on("login",(name,age)=>{
        socket.emit("message",name+","+age);//觸發客戶端message事件
    })
});

客戶端

引入js文件

進行交互

var socket = io.connect();      //觸發服務器端connection事件
socket.emit("login","moyu",20); //觸發服務器端login事件
socket.on("message",function(msg){
    alert(msg);
})
關于排行榜

利用了js的匿名立即執行函數進行模塊化包裝

var tops = (function () {
    /*
     * _tops : 存放所有id,按照回答正確數倒序排列
     * idmap : 一個hash map結構,key為id,value為名字與回答正確數
     * n : 前n個,在toJSON調用
     */
    var _tops = [],idmap={},n=10;
    return {
        set : function (id,name,v) {
            if(this.isExists(id))//如果id已經存在則刪除,防止出現重復id
                this.remove(id);
            // 找到按照v從大到小所對應的位置
            var i = _tops.findIndex(x=>{return idmap[x].v{
                if(i>=n) return false;
                arr.push({id:x,v:idmap[x].v,name:idmap[x].name});
                return true;
            });
            return arr;
        }
    }
}());
關于Bootstrap柵格
.container{
    margin-right: auto;
    margin-left: auto;
    //防止最外層的.row元素左右擴展15px
    padding-left: 15px;
    padding-right: 15px;
}

.col-3{
    width: 30%;
}
.col-4{
    width: 40%;
}
.col-9{
    width: 90%;
}

/.../

.row{
    /* 向外左右延伸15px */
    margin-right: -15px;
    margin-left: -15px;
}
/* 防止子元素為float,父元素的高度為0 */
.row:before,
.row:after {
    content: " ";
    display: table;
}
.row:after {
    clear: both;
}

.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9{
    padding-left: 15px;
    padding-right: 15px;
    float:left;
}

HTML結構

col-6

col-4
col-2
關于一欄(多欄)寬度固定,一欄自適應

圣杯布局

雙飛翼

感受

...做單頁應用真的需要挺大的心臟,而且需要較好的整體的架構,好在socket.io對websocket封裝的不錯,變成了面向消息的方式,代碼結構相對更加清晰了些。

...不敢想象用Java做這種實時單頁應用后端會有多么的「拗口」。最后推薦一個實時的更加優秀的游戲:slithe。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/86362.html

相關文章

  • 聊一聊Web端的即時通訊

    摘要:聊一聊端的即時通訊端實現即時通訊的方法有哪些短輪詢長輪詢流輪詢客戶端定時向服務器發送請求,服務器接到請求后馬上返回響應信息并關閉連接。介紹是開始提供的一種在單個連接上進行全雙工通訊的協議。 聊一聊Web端的即時通訊 Web端實現即時通訊的方法有哪些? - 短輪詢 長輪詢 iframe流 Flash Socket 輪詢 客戶端定時向服務器發送Ajax請求,服務器接到請求后馬上返...

    KevinYan 評論0 收藏0
  • Vue2 + Nodejs + WebSocket 完成你畫我猜多人在線游戲

    摘要:使用即可完成一個很有意思的在線游戲作品。你畫我猜,相信大家對這個游戲都很熟悉。我用實現了你畫我猜這個游戲。可以修改畫筆顏色,粗細,進行撤銷,恢復,清空等操作。第一個猜完后,游戲時間縮短為秒。 使用 websocket + vue2 即可完成一個很有意思的在線游戲作品。你畫我猜,相信大家對這個游戲都很熟悉。 我用Vue2 + mint-ui + nodejs + websocket ...

    XanaHopper 評論0 收藏0
  • 使用 Taro 寫一個你畫我猜的小程序

    摘要:選擇技術類型微信小程序使用功能不多就不是使用了后臺用寫,使用選來做。這里使用做畫布是有問題的,它不支持。游戲同步問題,這里用狀態同步的方法。最后使用的還是挺爽的 選擇技術類型 微信小程序使用Taro(功能不多就不是使用Redux了),后臺用php寫,websocket使用選workman來做。 這里使用Taro做畫布是有問題的,它不支持h5。 選型的問題 taro 不支持畫布的H5...

    jkyin 評論0 收藏0
  • 使用 Taro 寫一個你畫我猜的小程序

    摘要:選擇技術類型微信小程序使用功能不多就不是使用了后臺用寫,使用選來做。這里使用做畫布是有問題的,它不支持。游戲同步問題,這里用狀態同步的方法。最后使用的還是挺爽的 選擇技術類型 微信小程序使用Taro(功能不多就不是使用Redux了),后臺用php寫,websocket使用選workman來做。 這里使用Taro做畫布是有問題的,它不支持h5。 選型的問題 taro 不支持畫布的H5...

    TANKING 評論0 收藏0

發表評論

0條評論

jsummer

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<