-- Websocker: Used for connection between the controle webserver and Units(computers) local ws function Core:connect() ws, err = assert(http.websocket("ws://localhost:8080")); if not ws then term.setTextColor(colors.red); print(err); term.setTextColor(colors.white); end end function Core:send(package) if not package then return false, "Missing package"; end if not ws then return false, "Websocket not initiated"; end ws.send(textutils.serialiseJSON(package)); end function Core:read() if not ws then return false, "Websocket not initiated"; end return true, textutils.unserialiseJSON(ws.read()) end function Core:download(file) if not ws then return false, "Websocket not initiated"; end self:send({type = "REQUEST_FILE_INFO", file = file}); local success, data = self:read(); if not success then return false, "Failed to read: "+data; end if not data.type then return false, "Invalid package: "+textutils.serialiseJSON(data); end if not (data.type == "FILE_INFO") then return false, "Invalid package type: "+textutils.serialiseJSON(data); end if not data.exists then return false, "File is missing from server" end self:send({type = "REQUEST_FILE_DATA", file = file}) local success, data = self:read(); end