本文整理汇总了Golang中github.com/canopener/PongPlusPlus-Server/server/connection.Conn类的典型用法代码示例。如果您正苦于以下问题:Golang Conn类的具体用法?Golang Conn怎么用?Golang Conn使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Conn类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: NewGame
// NewGame returns a pointer to a game instance given two connections
func NewGame(initiator *connection.Conn, name string) *Game {
id := uuid.NewV4().String()
serverlog.General("Initiating Game:", id, "with", initiator.Identification())
return &Game{
ID: id,
Name: name,
Initiator: initiator,
InitTime: time.Now(),
Ready: false,
UDSPath: path.Join("~", ".pppsrv", "sockets", id+".sock"),
FinChan: make(chan bool, 1),
}
}
开发者ID:CanOpener,项目名称:PongPlusPlus-Server,代码行数:14,代码来源:games.go
示例2: RequestGameList
// RequestGameList handles the case where a player sends a RequestGameList message
func RequestGameList(conn *connection.Conn, allGames map[string]*games.Game, message messages.RequestGameListMessage) {
serverlog.General("Received RequestGameList message from", conn.Identification())
if !conn.Registered {
serverlog.General("Unregistered", conn.Identification(), "called RequestGameList")
return
}
serverlog.General("Sending Game list to", conn.Identification())
gameList := games.NewGameListMessage(allGames)
conn.Write(gameList.Bytes())
}
开发者ID:CanOpener,项目名称:PongPlusPlus-Server,代码行数:13,代码来源:requestGameList.go
示例3: LeaveGame
// LeaveGame handles the case where a player sends a LeaveGame message
func LeaveGame(conn *connection.Conn, allGames map[string]*games.Game, message messages.LeaveGameMessage) {
serverlog.General("Received LeaveGame message from", conn.Identification())
if !conn.Registered {
serverlog.General("Unregistered", conn.Identification(), "called LeaveGame")
return
}
if !conn.InGame {
serverlog.General(conn.Identification(), "attempted to leave a game but isn't in a game:", allGames[conn.GameID].Name)
return
}
if allGames[conn.GameID].Ready {
// will be dealt with by game object
return
}
conn.InGame = false
delete(allGames, conn.GameID)
}
开发者ID:CanOpener,项目名称:PongPlusPlus-Server,代码行数:22,代码来源:leaveGame.go
示例4: Start
// Start will start the game
func (g *Game) Start(player2 *connection.Conn) {
serverlog.General("Starting", g.Identification(), "with player 2", player2.Identification())
g.Player2 = player2
g.Ready = true
g.startUDS()
}
开发者ID:CanOpener,项目名称:PongPlusPlus-Server,代码行数:7,代码来源:games.go
示例5: RequestAlias
// RequestAlias handles the situation when a client sends a RequestAlias message
func RequestAlias(message messages.RequestAliasMessage, conn *connection.Conn, al map[string]bool) {
serverlog.General("Received RequestAlias message from", conn.Identification())
if conn.Registered {
serverlog.General(conn.Identification(), "attempted to request new alias:", message.Alias)
denied := messages.NewAliasDeniedMessage("Already registered with alias: " + conn.Alias)
conn.Write(denied.Bytes())
return
}
if _, ok := al[message.Alias]; ok {
serverlog.General(conn.Identification(), "requested existing alias:", message.Alias)
denied := messages.NewAliasDeniedMessage("That alias is taken")
conn.Write(denied.Bytes())
return
}
if len(message.Alias) < 3 || len(message.Alias) > 10 {
serverlog.General(conn.Identification(), "requested too long or too short alias:", message.Alias)
denied := messages.NewAliasDeniedMessage("An alias needs to be between 3 and 10 characters long (inclusive)")
conn.Write(denied.Bytes())
return
}
serverlog.General("Successful registration under alias:", message.Alias)
conn.Alias = message.Alias
conn.Registered = true
serverlog.General("Adding:", message.Alias, "to takenAliases map")
al[message.Alias] = true
approved := messages.NewAliasApprovedMessage()
conn.Write(approved.Bytes())
}
开发者ID:CanOpener,项目名称:PongPlusPlus-Server,代码行数:33,代码来源:requestAlias.go
示例6: JoinGame
// JoinGame handles the case where a player sends a JoinGame message
func JoinGame(conn *connection.Conn, allGames map[string]*games.Game, message messages.JoinGameMessage) {
serverlog.General("Received JoinGame message from conn:", conn.Alias)
if !conn.Registered {
serverlog.General("Unregistered", conn.Identification, "called JoinGame")
denied := messages.NewJoinGameDeniedMessage("You have not registered an Alias")
conn.Write(denied.Bytes())
return
}
if conn.InGame {
serverlog.General(conn.Identification(), "attempted to join a game but is already in game:", allGames[conn.GameID].Name)
denied := messages.NewJoinGameDeniedMessage("You re already in a game")
conn.Write(denied.Bytes())
return
}
if _, ok := allGames[message.GameID]; !ok {
serverlog.General(conn.Identification(), "attempted to join a non existing game:", message.GameID)
denied := messages.NewJoinGameDeniedMessage("No games with that ID")
conn.Write(denied.Bytes())
return
}
game := allGames[message.GameID]
serverlog.General(conn.Identification(), "Successfully joined", game.Identification())
conn.InGame = true
conn.GameID = game.ID
game.Start(conn)
go listenFinished(game, allGames)
}
开发者ID:CanOpener,项目名称:PongPlusPlus-Server,代码行数:32,代码来源:joinGame.go
示例7: CreateGame
// CreateGame handles the case where a player sends a CreateGame message
func CreateGame(conn *connection.Conn, allGames map[string]*games.Game, message messages.CreateGameMessage) {
serverlog.General("Received CreateGame message from", conn.Identification())
if !conn.Registered {
serverlog.General("Unregistered", conn.Identification(), "called createGame")
denied := messages.NewCreateGameDeniedMessage(message.GameName, "You are not registered")
conn.Write(denied.Bytes())
return
}
if conn.InGame {
serverlog.General(conn.Identification(), "tried to create a new game but is already in game:", allGames[conn.GameID].Name)
denied := messages.NewCreateGameDeniedMessage(message.GameName, "You are already in a game")
conn.Write(denied.Bytes())
return
}
serverlog.General("Creating game:", message.GameName, "by", conn.Identification())
game := games.NewGame(conn, message.GameName)
serverlog.General(conn.Identification(), "setting InGame to true and Game to the game:", game.Name)
conn.InGame = true
conn.GameID = game.ID
serverlog.General("Attatching", game.Identification(), "to games list")
allGames[game.ID] = game
approved := messages.NewCreateGameApprovedMessage(game.ID, game.Name)
conn.Write(approved.Bytes())
}
开发者ID:CanOpener,项目名称:PongPlusPlus-Server,代码行数:29,代码来源:createGame.go
注:本文中的github.com/canopener/PongPlusPlus-Server/server/connection.Conn类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论