28 lines
575 B
Ruby
28 lines
575 B
Ruby
require "json"
|
|
|
|
module GameServer
|
|
module Server
|
|
class Connection
|
|
def initialize(ws, world)
|
|
@ws = ws
|
|
@world = world
|
|
@router = MessageRouter.new(world)
|
|
end
|
|
|
|
def run
|
|
Logging.logger.info "connection opened"
|
|
|
|
while msg = @ws.read
|
|
data = JSON.parse(msg)
|
|
response = @router.handle(data)
|
|
@ws.write(JSON.dump(response)) if response
|
|
end
|
|
rescue => e
|
|
Logging.logger.error e.message
|
|
ensure
|
|
Logging.logger.info "connection closed"
|
|
end
|
|
end
|
|
end
|
|
end
|