mirror of
https://github.com/tiennm99/try-netty.git
synced 2026-05-14 09:53:01 +00:00
82 lines
2.8 KiB
JavaScript
82 lines
2.8 KiB
JavaScript
let fbsSocket = new WebSocket("ws://localhost:1202/fbs");
|
|
fbsSocket.binaryType = 'arraybuffer';
|
|
|
|
fbsSocket.onopen = function () {
|
|
sendFbs();
|
|
};
|
|
|
|
let sendFbs = function () {
|
|
var builder = new flatbuffers.Builder(1024);
|
|
var weaponOne = builder.createString('Sword');
|
|
var weaponTwo = builder.createString('Axe');
|
|
|
|
// Create the first `Weapon` ('Sword').
|
|
MyGame.Sample.Weapon.startWeapon(builder);
|
|
MyGame.Sample.Weapon.addName(builder, weaponOne);
|
|
MyGame.Sample.Weapon.addDamage(builder, 3);
|
|
var sword = MyGame.Sample.Weapon.endWeapon(builder);
|
|
|
|
// Create the second `Weapon` ('Axe').
|
|
MyGame.Sample.Weapon.startWeapon(builder);
|
|
MyGame.Sample.Weapon.addName(builder, weaponTwo);
|
|
MyGame.Sample.Weapon.addDamage(builder, 5);
|
|
var axe = MyGame.Sample.Weapon.endWeapon(builder);
|
|
// Serialize a name for our monster, called 'Orc'.
|
|
var name = builder.createString('Orc');
|
|
|
|
// Create a `vector` representing the inventory of the Orc. Each number
|
|
// could correspond to an item that can be claimed after he is slain.
|
|
var treasure = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
|
var inv = MyGame.Sample.Monster.createInventoryVector(builder, treasure);
|
|
// Create an array from the two `Weapon`s and pass it to the
|
|
// `createWeaponsVector()` method to create a FlatBuffer vector.
|
|
var weaps = [sword, axe];
|
|
var weapons = MyGame.Sample.Monster.createWeaponsVector(builder, weaps);
|
|
MyGame.Sample.Monster.startPathVector(builder, 2);
|
|
MyGame.Sample.Vec3.createVec3(builder, 1.0, 2.0, 3.0);
|
|
MyGame.Sample.Vec3.createVec3(builder, 4.0, 5.0, 6.0);
|
|
var path = builder.endVector();
|
|
// Create our monster by using `startMonster()` and `endMonster()`.
|
|
MyGame.Sample.Monster.startMonster(builder);
|
|
MyGame.Sample.Monster.addPos(builder,
|
|
MyGame.Sample.Vec3.createVec3(builder, 1.0, 2.0, 3.0));
|
|
MyGame.Sample.Monster.addHp(builder, 300);
|
|
MyGame.Sample.Monster.addColor(builder, MyGame.Sample.Color.Red)
|
|
MyGame.Sample.Monster.addName(builder, name);
|
|
MyGame.Sample.Monster.addInventory(builder, inv);
|
|
MyGame.Sample.Monster.addWeapons(builder, weapons);
|
|
MyGame.Sample.Monster.addEquippedType(builder,
|
|
MyGame.Sample.Equipment.Weapon);
|
|
MyGame.Sample.Monster.addEquipped(builder, axe);
|
|
MyGame.Sample.Monster.addPath(builder, path);
|
|
var orc = MyGame.Sample.Monster.endMonster(builder);
|
|
MyGame.Sample.Monster.addEquippedType(builder,
|
|
MyGame.Sample.Equipment.Weapon); // Union type
|
|
MyGame.Sample.Monster.addEquipped(builder, axe); // Union data
|
|
builder.finish(orc);
|
|
|
|
var buf = builder.asUint8Array(); // Of type `Uint8Array`.
|
|
|
|
console.log(buf);
|
|
|
|
fbsSocket.send(buf);
|
|
}
|
|
|
|
let jsonSocket = new WebSocket("ws://localhost:1202/json");
|
|
|
|
jsonSocket.onopen = function () {
|
|
sendJson();
|
|
};
|
|
|
|
let sendJson = function () {
|
|
let data = {
|
|
a: 1,
|
|
b: true,
|
|
c: [1, 2, 3],
|
|
d: {
|
|
e: 1,
|
|
}
|
|
}
|
|
jsonSocket.send(JSON.stringify(data));
|
|
}
|