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

資訊專欄INFORMATION COLUMN

房間號生成器

LMou / 681人閱讀

摘要:在寫游戲服務器中特別是卡牌一類的游戲經常需要讓用戶手動輸入房間號加入一個房間為了用戶友好這個房間號通常需要限定長度比如位或者位數字因此用數據庫的對用戶不太友好其一是長度不固定其二是后期房間號會很長所以專門寫了一個房間號生成器服務器其滿足以下

在寫游戲服務器中, 特別是卡牌一類的游戲, 經常需要讓用戶手動輸入房間號加入一個房間, 為了用戶友好, 這個房間號通常需要限定長度, 比如4位或者6位數字. 因此用數據庫的auto_increment對用戶不太友好, 其一是長度不固定, 其二是后期房間號會很長, 所以專門寫了一個房間號生成器服務器, 其滿足以下需求:

指定生成的的房間號范圍: 比如[100000, 1000000)

租借過期: 當一個房間號被生成后, 若超時未續期, 則自動釋放(凍結)

房間號凍結: 當一個房間號被歸還后, 在指定時間范圍內不會被重新分配

安裝

項目地址: https://github.com/acrazing/uno

安裝:

go get -u github.com/acrazing/uno
使用

接口很簡單:

import "github.com/acrazing/uno"
import "context"

// 創建一個worker
w := uno.NewWorker()

// 配置
w.Init(&uno.Options{
    MinValue: 1e5,
    MaxValue: 1e6,
})
// 啟動服務
go w.Run(context.Background())
// 生成ID
no := w.Rent()
if no == 0 {
    // 如果返回0, 則表示生成房間號失敗
    panic("")
}
// 釋放ID
w.Return(no)
// 續租ID
ok := w.Relet(no)
if ok {
    // 如果返回false, 表示續租失敗
}
gRPC

gRPC的服務和消息都已經定義好, 可以直接取用:

    addr := "127.0.0.1:1234"

    // server
    listener, err := net.Listen("tcp", addr)
    if err != nil {
        panic(err)
    }
    server := grpc.NewServer()
    uno.RegisterUnoServer(server, uno.Service)
    uno.Service.Init(&uno.Options{
        MinValue: 2,
        MaxValue: 5,
        TTF:      time.Second,
        TTL:      time.Second,
    })
    go uno.Service.Run(context.Background())
    go server.Serve(listener)

    // client
    conn, _ := grpc.Dial(addr, grpc.WithInsecure())
    client := uno.NewUnoClient(conn)
    no, err := client.Rent(context.Background(), &uno.Empty{})
    log.Printf("rent: %v, err: %v", no, err)

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

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

相關文章

  • 房間成器

    摘要:在寫游戲服務器中特別是卡牌一類的游戲經常需要讓用戶手動輸入房間號加入一個房間為了用戶友好這個房間號通常需要限定長度比如位或者位數字因此用數據庫的對用戶不太友好其一是長度不固定其二是后期房間號會很長所以專門寫了一個房間號生成器服務器其滿足以下 在寫游戲服務器中, 特別是卡牌一類的游戲, 經常需要讓用戶手動輸入房間號加入一個房間, 為了用戶友好, 這個房間號通常需要限定長度, 比如4位或者...

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

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

    XanaHopper 評論0 收藏0
  • 前言 項目開始是因為工作需要一個聊天室功能,但是因為某些原因最終選用的是基于xmpp協議的Strophe.js寫的。于是就想用node自己寫一套,本來只是想簡單的寫個聊天頁面,但是寫完了又不滿意,所以不斷的重構(似乎可以理解產品經理為什么老是改需求了?乛?乛?)。很多東西,比如mongodb,我也是第一次用,以前只接觸過mysql。所以都是一邊學一邊寫,利用工作之余的時間,斷斷續續的寫了幾個月(...

    PAMPANG 評論0 收藏0
  • 前言 項目開始是因為工作需要一個聊天室功能,但是因為某些原因最終選用的是基于xmpp協議的Strophe.js寫的。于是就想用node自己寫一套,本來只是想簡單的寫個聊天頁面,但是寫完了又不滿意,所以不斷的重構(似乎可以理解產品經理為什么老是改需求了?乛?乛?)。很多東西,比如mongodb,我也是第一次用,以前只接觸過mysql。所以都是一邊學一邊寫,利用工作之余的時間,斷斷續續的寫了幾個月(...

    fireflow 評論0 收藏0
  • B 站直播間數據爬蟲

    摘要:站的彈幕服務器也有類似的機制,隨便打開一個未開播的直播間,抓包將看到每隔左右會給服務端發送一個心跳包,協議頭第四部分的值從修改為即可。 原文:B 站直播間數據爬蟲, 歡迎轉載項目地址:bilibili-live-crawler 前言 起因 去年在 B 站發現一個后期超強的 UP 主:修仙不倒大小眼,專出 PDD 這樣知名主播的吃雞精彩集錦,漲粉超快。于是想怎么做這樣的 UP,遇到的第一...

    xuweijian 評論0 收藏0

發表評論

0條評論

LMou

|高級講師

TA的文章

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