gasjs
v0.1.2
Published
uneed.com GAS js client
Downloads
9
Readme
GAS javascript
TODOs
- [x] GAS基本逻辑
- [ ] 重连机制
- [ ] API优化
服务端与客户端通信逻辑
消息
消息结构定义:
// 客户端发送
{
"type": "normal/broadcast", // 普通/广播
"event": "some.event.type", // 事件类型
"data": { // 事件数据
...
}
}
// 服务端下发
{
"event": "some.event.type",
"data": {
...
}
}
游戏端发送的消息
进入房间
{
"type": "normal",
"event": "entry",
"data": {
"channelId": "the channel id", // 房间id
"userId": "the user id", // uneed用户id
"token": "the token", // 请求创建房间时下发的token,用于GAS验证
}
}
准备开始
{
"type": "normal",
"event": "player.prepare",
}
游戏结束
{
"type": "normal",
"event": "game.end"
}
转发与定向转发
{
"type": "broadcast",
"event": "some.game.event",
"players": [...] // 若无此项则转发到除我之外,若有此项则定向转发
}
服务端发送的消息
进入房间成功
{
"event": "entry",
"data": {
"players": [...] // 其他玩家
}
}
广播玩家进入房间
{
"event": "player.entry",
"data": {
"playerId": "the player id"
}
}
广播游戏开始
{
"event": "game.start"
}
广播游戏结束
{
"event": "game.end",
"data": {
... //游戏结果
}
}
除此之外,服务端帮助转发或定向转其他自定义的游戏消息
Usage
import GAS from 'gasjs';
var gas = new GAS.Client();
gas
.configure({
uri: 'ws://gas.uneed.com/',
playerId: 'your uneed id',
channelId: 'game0001_room0001',
token: 'your token'
})
.startup({
onPlayerEntry: (player) => {},
onGameStart: () => {},
onGameEnd: (data) => {},
onGameMessage: (data) => {},
onError: (data) => {}
});
// 广播所有玩家
gas.broadcast('your.game.event', data);
// 定向广播
var playerIds = [...];
gas.broadcast('your.game.event', playerIds, data);
Contribute
Requirements
- node 6.x LTS
- yarn package manager
- webpack and webpack-dev-server
Step
- Clone this project and entry javascript path:
cd gas/js
- Install dependencies:
yarn install
yarn run dev