使用node.js和socket.io的协作文本工具

时间:2017-06-15 15:30:14

标签: javascript jquery node.js sockets

我正在使用节点和套接字进行协作应用,我有一个简单的文本工具。如果其中一个用户键入并将文本应用到画布,我希望其他连接用户也能看到该文本。

这就是我的尝试:

使用文字工具的客户

$input.keyup(function(e) {
  if (e.which === 13) {
    e.preventDefault();
    ctx.font = (2 * texttool.lineWidth) + "px sans-serif";
    ctx.fillStyle = texttool.color;
    //call fillText to push the content of input to the page
    //this parses out the input's left and top coordinates and then sets the text to be at those coordinates
    ctx.fillText($input.val(), parseInt($input.css("left")), parseInt($input.css("top")));
    //save the context
    ctx.save();
    //set the display to none for the input and erase its value
    $input.css("display", "none").val("");

    console.log("sendtxt: ");
    socket.emit('txt', ctx.fillText());
  }
});

socket.on('txt', function() {
    console.log("Text");
    ctx.fillText();
});

服务器

socket.on('txt', function() {
   console.log("Text");
   socket.broadcast.emit('txt', ctx.fillText());
});

提前致谢。

1 个答案:

答案 0 :(得分:0)

不完全知道cox填充文本正在做什么,您可以在服务器代码中尝试这个。另外我假设没有params的ctx.fillText()将返回当前文本。

客户

socket.on('txt', function(msg) {
   console.log(msg);
   socket.broadcast.emit('txt', msg);
});

服务器

$host = 'www.example.com';
$ping = new Ping($host);
$latency = $ping->ping();
if ($latency !== false) {
 print 'Latency is ' . $latency . ' ms';
}
else {
print 'Host could not be reached.';
}