client : ClientId,
need_flush : bool,
init_confirmation_send : iter::Once<()>,
+ keepalives : Wrapping<u32>,
to_send : UpdateId,
ami : Arc<Mutex<Instance>>,
}
let mut buf = orig_buf.as_mut();
if self.init_confirmation_send.next().is_some() {
- write!(buf, r#"
-data: server online
-
-"#)?;
-/*event: commsworking*/
+ write!(buf, "event: commsworking\n\
+ data: server online {} {} G{}\n\n",
+ self.player, self.client, self.to_send)?;
}
let pu = &mut amig.updates.get(self.player)
if next_len > buf.len() { break }
if next.client == self.client {
- write!(buf, r#"
-event: recorded
-data: "#)?;
+ write!(buf, "event: recorded\n\
+ data: foo\n\n")?;
serde_json::to_writer(&mut *buf, &RecordedConfirmation {
gen : next.gen,
piece : next.piece,
cseq : next.client_seq,
})?;
- write!(buf, r#"
-"#)?;
} else {
- write!(buf, r#"
-id: {}
-data: {}
-"#,
+ write!(buf, "id: {}\n\
+ data: {}\n\n",
&self.to_send,
&next.json)?;
}
loop {
let generated = orig_wanted - buf.len();
if generated > 0 {
- eprintln!("SENDING {} to {:?} {:?}:\n{}\n",
+ eprintln!("SENDING {} to {:?} {:?}: {:?}",
generated, &self.player, &self.client,
str::from_utf8(&orig_buf[0..generated]).unwrap());
self.need_flush = true;
amig = cv.wait_timeout(amig, UPDATE_KEEPALIVE)
.map_err(|_| em("poison"))?.0;
- write!(buf,r#"
-: keepalive
-"#)?;
+
+ write!(buf, "event: commsworking\n\
+ data: server online {} {} G{} K{}\n\n",
+ self.player, self.client, self.to_send, self.keepalives)?;
+ self.keepalives += Wrapping(1);
+/*
+ write!(buf,": keepalive\n\n")?; */
}
}
}
*/
#[derive(Debug)]
-struct DebugReader<T : Read>(T);
+pub struct DebugReader<T : Read>(pub T);
impl<T : Read> Read for DebugReader<T> {
fn read(&mut self, buf: &mut [u8]) -> Result<usize,io::Error> {
UpdateReader {
player, client, to_send, ami,
need_flush : false,
+ keepalives : Wrapping(0),
init_confirmation_send : iter::once(()),
}
};
let content = BufReader::with_capacity(UPDATE_READER_SIZE, content);
- DebugReader(content)
+ //DebugReader(content)
+ content
}
var k = Object.keys(j)[0];
messages[k](j[k]);
}
- es.oncommsworking = function(event) {
- status_node.innerHTML = data.value;
- }
- es.onrecorded = function(event) {
+ es.addEventListener('commsworking', function(event) {
+ console.log('GOTDATA');
+ status_node.innerHTML = event.data;
+ });
+ es.addEventListener('recorded', function(event) {
xxx_recorded();
- }
+ });
es.onerror = function(e) {
console.log('FOO',e,es);
json_report_error({