*/ class MineseekerRpc implements RpcInterface { /** @var RpcManager $manager */ private $manager; /** * MineseekerRpc constructor. * * @param RpcManager $manager */ public function __construct(RpcManager $manager) { $this->manager = $manager; } /** * Name of RPC, use for pubsub router (see step3) * * @return string */ public function getName(): string { return 'mineseeker.rpc'; } /** * It handles the game starting processes * * @param ConnectionInterface $connection * @param WampRequest $request * @param array $params * * @return boolean */ public function startGame(ConnectionInterface $connection, WampRequest $request, array $params): bool { return $this->manager->saveGrid($params); } /** * It handles when somebody trying to connect to the party * * @param ConnectionInterface $connection * @param WampRequest $request * @param array $params * * @return string Json string for frontend w/ numbering consideration. (=> a number is not string) */ public function connectGame(ConnectionInterface $connection, WampRequest $request, array $params): string { return $this->manager->getConnectInformation($params); } }