For educational reasons I've decided to create my own CA. Here is what I learned.
Lets get some context first.
| var WebSocketServer = require('ws').Server; | |
| var wss = new WebSocketServer({port: 8080}); | |
| var jwt = require('jsonwebtoken'); | |
| /** | |
| The way I like to work with 'ws' is to convert everything to an event if possible. | |
| **/ | |
| function toEvent (message) { | |
| try { |
| #!/bin/bash | |
| # Collects system performance statistics such as CPU, memory, and disk | |
| # usage as well as top processes ran by users. | |
| # | |
| # All size values are in KiB (memory, disk, etc). | |
| # Takes these command line arguments: | |
| # $1 - cpuThreshold in % of total across all CPUs. Default is provided in no-args option. |
| # Copyright 2017 Dan Krause | |
| # | |
| # Licensed under the Apache License, Version 2.0 (the "License"); | |
| # you may not use this file except in compliance with the License. | |
| # You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, |
WebSockets is a modern HTML5 standard which makes communication between client and server a lot more simpler than ever. We are all familiar with the technology of sockets. Sockets have been fundamental to network communication for a long time but usually the communication over the browser has been restricted. The general restrictions
| # Dockerfile snippets that are useful to me. Many bits obtained from others. | |
| FROM ubuntu:14.04 | |
| MAINTAINER Andrew Mac <[email protected]> | |
| RUN echo 'Acquire::http::Proxy "http://172.17.42.1:3142"; ' > /etc/apt/apt.conf | |
| RUN echo "deb http://archive.ubuntu.com/ubuntu trusty main universe" > /etc/apt/sources.list | |
| RUN echo "deb http://archive.ubuntu.com/ubuntu trusty-security main universe" >> /etc/apt/sources.list | |
| #RUN echo "deb http://archive.ubuntu.com/ubuntu trusty-updates main universe" >> /etc/apt/sources.list | |
| RUN apt-get -qq update |
| /* Useful celery config. | |
| app = Celery('tasks', | |
| broker='redis://localhost:6379', | |
| backend='redis://localhost:6379') | |
| app.conf.update( | |
| CELERY_TASK_RESULT_EXPIRES=3600, | |
| CELERY_QUEUES=( | |
| Queue('default', routing_key='tasks.#'), |
| from celery import Task | |
| from celery.task import task | |
| from my_app.models import FailedTask | |
| from django.db import models | |
| @task(base=LogErrorsTask) | |
| def some task(): | |
| return result | |
| class LogErrorsTask(Task): |
This document is research for the selection of a communication platform for robot-net.
The purpose of this component is to enable rapid, reliable, and elegant communication between the various nodes of the network, including controllers, sensors, and actuators (robot drivers). It will act as the core of robot-net to create a standardized infrastructure for robot control.
Requirements: