iframe embed
The iframe embed works with any stack — no SDK required. Drop in a single <iframe> tag and listen for game events via postMessage.
Basic usage
<!-- Chess -->
<iframe
src="https://games.beta-gamer.com/embed/chess?session=<sessionToken>"
width="800" height="600"
allow="fullscreen"
style="border: none; border-radius: 12px;"
/>
<!-- Checkers -->
<iframe
src="https://games.beta-gamer.com/embed/checkers?session=<sessionToken>"
width="700" height="700"
allow="fullscreen"
style="border: none; border-radius: 12px;"
/>⚠️ The
sessionToken must come from your backend. Never expose your API key (bg_live_…) to the browser — only the short-lived JWT session token is safe to pass to the client.postMessage events
Listen on window for messages from the iframe. Always check event.origin before trusting the data.
| event | When | Payload |
|---|---|---|
game.started | Game begins | { roomId, players } |
match.found | Opponent matched | { opponent: { id, displayName } } |
game.ended | Game finishes | { result: { winner, reason, duration } } |
error | Unrecoverable error | { message } |
window.addEventListener('message', (event) => {
if (event.origin !== 'https://games.beta-gamer.com') return;
const { type, payload } = event.data;
switch (type) {
case 'game.started':
console.log('Game started, roomId:', payload.roomId);
break;
case 'game.ended':
const { winner, reason, duration } = payload.result;
console.log(`Game over — winner: ${winner}, reason: ${reason}`);
break;
case 'error':
console.error('Game error:', payload.message);
break;
}
});Beta Gamer GaaS API — questions? support@beta-gamer.com