added server option
This commit is contained in:
parent
d6a335f293
commit
80545b0538
|
@ -5,6 +5,12 @@
|
|||
<meta charset="UTF-8">
|
||||
</head>
|
||||
<body style="background-color: grey;">
|
||||
<p>
|
||||
Server to connect:
|
||||
<input type="text" id="server-address" value="foxarmy.org"/>
|
||||
<input type="number" id="server-port" value="7865"/>
|
||||
<input type="button" id="server-button" value="connect" onclick="connect()">
|
||||
</p>
|
||||
<p>
|
||||
<input type="color" id="color" />
|
||||
<input type="button" id="submitColor" value="change color" onclick="changeColor()"/>
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
const socket = new WebSocket("ws://localhost:7865");
|
||||
var serverAddress = document.getElementById("server-address").value;
|
||||
var serverPort = document.getElementById("server-port").value
|
||||
var socket = new WebSocket(`ws://${serverAddress}:${serverPort}`);
|
||||
var canvas = document.getElementById("board");
|
||||
var colorInput = document.getElementById("color");
|
||||
var canvasHidden = document.getElementById("hidden");
|
||||
|
@ -11,6 +13,50 @@ canvasHidden.width = 1920;
|
|||
canvasHidden.height = 1080;
|
||||
var imgData = ctx2.createImageData(canvasHidden.width, canvasHidden.height)
|
||||
|
||||
function connect() {
|
||||
socket.close();
|
||||
serverAddress = document.getElementById("server-address").value;
|
||||
serverPort = document.getElementById("server-port").value
|
||||
console.log(`Connecting ${serverAddress}:${serverPort}`)
|
||||
socket = new WebSocket(`ws://${serverAddress}:${serverPort}`)
|
||||
|
||||
socket.addEventListener("open", (event) => {
|
||||
socket.send("{\"code\":0}");
|
||||
});
|
||||
|
||||
socket.addEventListener("message", (event) => {
|
||||
// console.log("Message from server ", JSON.stringify(event.data.toString()));
|
||||
event.data.text().then(function(packet){
|
||||
packet = JSON.parse(packet)
|
||||
let code = packet.code
|
||||
let content = packet.content
|
||||
switch (code){
|
||||
case 0:
|
||||
//Ineffective way to do that, fix that later ;)
|
||||
let converted = Uint8ClampedArray.from(content)
|
||||
|
||||
for (let i = 0; i < converted.length; i ++)
|
||||
imgData.data[i] = converted[i]
|
||||
redraw();
|
||||
break;
|
||||
case 1:
|
||||
contentJson = JSON.parse(content);
|
||||
let color = {
|
||||
r: contentJson.r,
|
||||
g: contentJson.g,
|
||||
b: contentJson.b
|
||||
}
|
||||
|
||||
drawPixel(contentJson.x * 4, contentJson.y * 4, color)
|
||||
redraw();
|
||||
break;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// socket.send("{\"code\":0}");
|
||||
}
|
||||
|
||||
function drawPixel(x, y, color) {
|
||||
let pixelNumber;
|
||||
if (y > 0)
|
||||
|
@ -40,42 +86,9 @@ function redraw() {
|
|||
ctx.imageSmoothingEnabled = false
|
||||
}
|
||||
|
||||
socket.addEventListener("open", (event) => {
|
||||
socket.send("{\"code\":0}");
|
||||
});
|
||||
|
||||
socket.addEventListener("message", (event) => {
|
||||
// console.log("Message from server ", JSON.stringify(event.data.toString()));
|
||||
event.data.text().then(function(packet){
|
||||
packet = JSON.parse(packet)
|
||||
let code = packet.code
|
||||
let content = packet.content
|
||||
switch (code){
|
||||
case 0:
|
||||
//Ineffective way to do that, fix that later ;)
|
||||
let converted = Uint8ClampedArray.from(content)
|
||||
|
||||
for (let i = 0; i < converted.length; i ++)
|
||||
imgData.data[i] = converted[i]
|
||||
redraw();
|
||||
break;
|
||||
case 1:
|
||||
contentJson = JSON.parse(content);
|
||||
let color = {
|
||||
r: contentJson.r,
|
||||
g: contentJson.g,
|
||||
b: contentJson.b
|
||||
}
|
||||
|
||||
drawPixel(contentJson.x * 4, contentJson.y * 4, color)
|
||||
redraw();
|
||||
break;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// All the code that is making zooms and moving around cavnas is made with big help of http://phrogz.net/tmp/canvas_zoom_to_cursor.html. Thanks alot!
|
||||
window.onload = function() {
|
||||
connect();
|
||||
var ctx = canvas.getContext("2d");
|
||||
trackTransforms(ctx);
|
||||
|
||||
|
|
Loading…
Reference in New Issue