fix socket

This commit is contained in:
ntr 2019-07-10 18:33:21 +10:00
parent e5b2eb48c9
commit fdee5e3a0f
2 changed files with 25 additions and 49 deletions

View File

@ -28,115 +28,95 @@ function createSocket(events) {
// Outgoing // Outgoing
// ------------- // -------------
function send(msg) { function send(msg) {
if (msg.method !== 'ping') console.log('outgoing msg', msg); if (msg.method !== 'Ping') console.log('outgoing msg', msg);
ws.send(cbor.encode(msg)); ws.send(cbor.encode(msg));
} }
let ping; let ping;
function sendPing() { function sendPing() {
ping = Date.now(); ping = Date.now();
send({ method: 'ping', params: {} }); send(['Ping', {}]);
}
function sendAccountLogin(name, password) {
send({ method: 'account_login', params: { name, password } });
}
function sendAccountCreate(name, password, code) {
send({ method: 'account_create', params: { name, password, code } });
} }
function sendAccountConstructs() { function sendAccountConstructs() {
send({ method: 'account_constructs', params: {} }); send(['AccountConstructs', {}]);
} }
function sendAccountInstances() { function sendAccountInstances() {
send({ method: 'account_instances', params: {} }); send(['AccountInstances', {}]);
}
function sendConstructSpawn(name) {
send({ method: 'construct_spawn', params: { name } });
}
function sendConstructDelete(id) {
send({ method: 'construct_delete', params: { id } });
} }
function sendGameState(id) { function sendGameState(id) {
send({ method: 'game_state', params: { id } }); send(['GameState', { id }]);
} }
function sendGameReady(id) { function sendGameReady(id) {
send({ method: 'game_ready', params: { id } }); send(['GameReady', { id }]);
} }
function sendInstanceState(instanceId) { function sendInstanceState(instanceId) {
send({ method: 'instance_state', params: { instance_id: instanceId } }); send(['InstanceState', { instance_id: instanceId }]);
} }
function sendInstanceList() { function sendInstanceList() {
send({ method: 'instance_list', params: {} }); send(['InstanceList', {}]); }
}
function sendVboxAccept(instanceId, group, index) { function sendVboxAccept(instanceId, group, index) {
send({ method: 'vbox_accept', params: { instance_id: instanceId, group, index } }); send(['VboxAccept', { instance_id: instanceId, group, index }]);
events.clearInstance(); events.clearInstance();
} }
function sendVboxApply(instanceId, constructId, index) { function sendVboxApply(instanceId, constructId, index) {
send({ method: 'vbox_apply', params: { instance_id: instanceId, construct_id: constructId, index } }); send(['VboxApply', { instance_id: instanceId, construct_id: constructId, index }]);
events.clearInstance(); events.clearInstance();
} }
function sendVboxUnequip(instanceId, constructId, target) { function sendVboxUnequip(instanceId, constructId, target) {
send({ method: 'vbox_unequip', params: { instance_id: instanceId, construct_id: constructId, target } }); send(['VboxUnequip', { instance_id: instanceId, construct_id: constructId, target }]);
events.clearInstance(); events.clearInstance();
} }
function sendVboxDiscard(instanceId) { function sendVboxDiscard(instanceId) {
send({ method: 'vbox_discard', params: { instance_id: instanceId } }); send(['VboxDiscard', { instance_id: instanceId }]);
events.clearInstance(); events.clearInstance();
} }
function sendVboxCombine(instanceId, indices) { function sendVboxCombine(instanceId, indices) {
send({ method: 'vbox_combine', params: { instance_id: instanceId, indices } }); send(['VboxCombine', { instance_id: instanceId, indices }]);
events.clearCombiner(); events.clearCombiner();
} }
function sendVboxReclaim(instanceId, index) { function sendVboxReclaim(instanceId, index) {
send({ method: 'vbox_reclaim', params: { instance_id: instanceId, index } }); send(['VboxReclaim', { instance_id: instanceId, index }]);
events.clearInstance(); events.clearInstance();
} }
function sendItemInfo() { function sendItemInfo() {
send({ method: 'item_info', params: {} }); send(['ItemInfo', {}]);
} }
function sendGameSkill(gameId, constructId, targetConstructId, skill) { function sendGameSkill(gameId, constructId, targetConstructId, skill) {
send({ send(['GameSkill',
method: 'game_skill', { game_id: gameId, construct_id: constructId, target_construct_id: targetConstructId, skill, },
params: { ]);
game_id: gameId, construct_id: constructId, target_construct_id: targetConstructId, skill,
},
});
events.setActiveSkill(null); events.setActiveSkill(null);
} }
function sendGameTarget(gameId, constructId, skillId) { function sendGameTarget(gameId, constructId, skillId) {
send({ method: 'game_target', params: { game_id: gameId, construct_id: constructId, skill_id: skillId } }); send(['GameTarget', { game_id: gameId, construct_id: constructId, skill_id: skillId }]);
events.setActiveSkill(null); events.setActiveSkill(null);
} }
function sendInstanceJoin(instanceId, constructs) { function sendInstanceJoin(instanceId, constructs) {
send({ method: 'instance_join', params: { instance_id: instanceId, construct_ids: constructs } }); send(['Instancejoin', { instance_id: instanceId, construct_ids: constructs }]);
} }
function sendInstanceNew(constructs, name, pve) { function sendInstanceNew(constructs, name, pve) {
send({ method: 'instance_new', params: { construct_ids: constructs, name, pve } }); send(['Instancenew', { construct_ids: constructs, name, pve }]);
} }
function sendInstanceReady(instanceId) { function sendInstanceReady(instanceId) {
send({ method: 'instance_ready', params: { instance_id: instanceId } }); send(['instance_ready', { instance_id: instanceId }]);
} }
function sendMtxApply(constructId, mtx) { function sendMtxApply(constructId, mtx) {
@ -155,7 +135,7 @@ function createSocket(events) {
function onAccountInstances(list) { function onAccountInstances(list) {
events.setAccountInstances(list); events.setAccountInstances(list);
// setTimeout(sendAccountInstances, 5000); setTimeout(sendAccountInstances, 5000);
} }
function onAccountConstructs(constructs) { function onAccountConstructs(constructs) {
@ -205,7 +185,7 @@ function createSocket(events) {
let pongTimeout; let pongTimeout;
function onPong() { function onPong() {
events.setPing(Date.now() - ping); events.setPing(Date.now() - ping);
// pongTimeout = setTimeout(sendPing, 1000); pongTimeout = setTimeout(sendPing, 1000);
} }
// ------------- // -------------
@ -309,16 +289,12 @@ function createSocket(events) {
return { return {
clearGameStateTimeout, clearGameStateTimeout,
clearInstanceStateTimeout, clearInstanceStateTimeout,
sendAccountLogin,
sendAccountCreate,
sendAccountConstructs, sendAccountConstructs,
sendAccountInstances, sendAccountInstances,
sendGameState, sendGameState,
sendGameReady, sendGameReady,
sendGameSkill, sendGameSkill,
sendGameTarget, sendGameTarget,
sendConstructSpawn,
sendConstructDelete,
sendInstanceJoin, sendInstanceJoin,
sendInstanceList, sendInstanceList,
sendInstanceReady, sendInstanceReady,

View File

@ -156,7 +156,7 @@ pub fn receive(data: Vec<u8>, db: &Db, _client: &mut MnmlWs, begin: Instant, acc
}, },
Err(e) => { Err(e) => {
info!("{:?}", e); info!("{:?}", e);
Err(err_msg("invalid message")) Err(format_err!("invalid message data={:?}", data))
}, },
} }
} }