摘要:在寫游戲服務(wù)器中特別是卡牌一類的游戲經(jīng)常需要讓用戶手動輸入房間號加入一個房間為了用戶友好這個房間號通常需要限定長度比如位或者位數(shù)字因此用數(shù)據(jù)庫的對用戶不太友好其一是長度不固定其二是后期房間號會很長所以專門寫了一個房間號生成器服務(wù)器其滿足以下
在寫游戲服務(wù)器中, 特別是卡牌一類的游戲, 經(jīng)常需要讓用戶手動輸入房間號加入一個房間, 為了用戶友好, 這個房間號通常需要限定長度, 比如4位或者6位數(shù)字. 因此用數(shù)據(jù)庫的auto_increment對用戶不太友好, 其一是長度不固定, 其二是后期房間號會很長, 所以專門寫了一個房間號生成器服務(wù)器, 其滿足以下需求:
指定生成的的房間號范圍: 比如[100000, 1000000)
租借過期: 當(dāng)一個房間號被生成后, 若超時未續(xù)期, 則自動釋放(凍結(jié))
房間號凍結(jié): 當(dāng)一個房間號被歸還后, 在指定時間范圍內(nèi)不會被重新分配
安裝項(xiàng)目地址: https://github.com/acrazing/uno
安裝:
go get -u github.com/acrazing/uno使用
接口很簡單:
import "github.com/acrazing/uno" import "context" // 創(chuàng)建一個worker w := uno.NewWorker() // 配置 w.Init(&uno.Options{ MinValue: 1e5, MaxValue: 1e6, })
// 啟動服務(wù) go w.Run(context.Background())
// 生成ID no := w.Rent() if no == 0 { // 如果返回0, 則表示生成房間號失敗 panic("") }
// 釋放ID w.Return(no)
// 續(xù)租ID ok := w.Relet(no) if ok { // 如果返回false, 表示續(xù)租失敗 }gRPC
gRPC的服務(wù)和消息都已經(jīng)定義好, 可以直接取用:
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)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/69521.html
摘要:在寫游戲服務(wù)器中特別是卡牌一類的游戲經(jīng)常需要讓用戶手動輸入房間號加入一個房間為了用戶友好這個房間號通常需要限定長度比如位或者位數(shù)字因此用數(shù)據(jù)庫的對用戶不太友好其一是長度不固定其二是后期房間號會很長所以專門寫了一個房間號生成器服務(wù)器其滿足以下 在寫游戲服務(wù)器中, 特別是卡牌一類的游戲, 經(jīng)常需要讓用戶手動輸入房間號加入一個房間, 為了用戶友好, 這個房間號通常需要限定長度, 比如4位或者...
摘要:使用即可完成一個很有意思的在線游戲作品。你畫我猜,相信大家對這個游戲都很熟悉。我用實(shí)現(xiàn)了你畫我猜這個游戲??梢孕薷漠嫻P顏色,粗細(xì),進(jìn)行撤銷,恢復(fù),清空等操作。第一個猜完后,游戲時間縮短為秒。 使用 websocket + vue2 即可完成一個很有意思的在線游戲作品。你畫我猜,相信大家對這個游戲都很熟悉。 我用Vue2 + mint-ui + nodejs + websocket ...
摘要:站的彈幕服務(wù)器也有類似的機(jī)制,隨便打開一個未開播的直播間,抓包將看到每隔左右會給服務(wù)端發(fā)送一個心跳包,協(xié)議頭第四部分的值從修改為即可。 原文:B 站直播間數(shù)據(jù)爬蟲, 歡迎轉(zhuǎn)載項(xiàng)目地址:bilibili-live-crawler 前言 起因 去年在 B 站發(fā)現(xiàn)一個后期超強(qiáng)的 UP 主:修仙不倒大小眼,專出 PDD 這樣知名主播的吃雞精彩集錦,漲粉超快。于是想怎么做這樣的 UP,遇到的第一...
閱讀 844·2019-08-30 15:55
閱讀 1419·2019-08-30 13:55
閱讀 1996·2019-08-29 17:13
閱讀 2850·2019-08-29 15:42
閱讀 1339·2019-08-26 14:04
閱讀 1027·2019-08-26 13:31
閱讀 3279·2019-08-26 11:34
閱讀 841·2019-08-23 18:25