/gopoker

Golang poker server

Primary LanguageGo

gopoker

Golang poker server

http://pokerno.de/

Features

Game variations

Limits

  • Fixed Limit
  • Pot Limit
  • No Limit

HTTP server

default port is 8080

  • /_api - REST API
  • /_ws - websockets
  • /_rpc - JSON RPC

Sample node config (node.json):

{
    "HTTP": {
        "Addr": ":8080",
        "APIPath": "/_api",
        "RPCPath": "/_rpc",
        "WebSocketPath": "/_ws"
    },
    "RPC": {
        "Addr": ":8081",
        "Timeout": 5
    },
    "Logdir": "/var/log/gopoker"
}

Protocols

  • pubsub service via 0mq socket+Google protobuf, default port is 5555
  • JSON RPC service, default port is 8081
  • TODO: STOMP
  • TODO: BOSH

Tools

  • bin/gopoker-cli - REPL-style gameplay
  • bin/gopoker-ctrl - command line interface to RPC service
  • bin/gopoker-bot - configurable bot with simple AI
  • web client - see https://github.com/maliqq/poker-js

Architecture

  • ai/ - bot AI with decision making logic
  • calc/ - poker related math
  • client/ - client related code
  • event/ - events exchange
  • event/message/ - message format
  • event/protocol - protocols
  • model/ - poker domain model
  • play/ - gameplay
  • poker/ - poker rules
  • server/ - server with topology (node, cluster, balancer) and services
  • storage/ - persistence to PostgreSQL for critical data and MongoDB for temporary data
  • util/ - utility functions