LoginSignup
2
5

More than 5 years have passed since last update.

UDPサーバ立ち上げといて!

Last updated at Posted at 2018-09-24

こんなことを言われた時に、対処した方法をメモ。

どう立ち上げたか

  • (大好きな) Node-RED で、UDP ノードってのがあったのを記憶していたのでそれを利用。
  • とりあえず、Docker-compose でしょ。
  • で、立ち上げた。

一瞬でもハマったポイント

  • AWS EC2 で立ち上げたので、セキュリティグループで、UDP を指定する。
  • Docker のポート指定で、 /udp を指定する。← これ知らなかった。
    • 記事はいっぱいあるけど、自分の備忘録で。

Node-RED

下記、3つのファイルを用意して、 docker-compose up -d --build

Dockerfile

FROM nodered/node-red-docker
COPY ./settings.js /usr/src/node-red/node_modules/node-red/settings.js
EXPOSE 1880
CMD ["node", "/usr/src/node-red/node_modules/node-red/red.js"]

settings.js を適宜編集して使用。

module.exports = {
    uiPort: process.env.PORT || 1880,
    mqttReconnectTime: 15000,
    serialReconnectTime: 15000,
    debugMaxLength: 2000,
    debugUseColors: true,
    flowFile: 'flows.json',
    flowFilePretty: true,
    credentialSecret: "a-secret-key",
    httpAdminRoot: '/admin',
    adminAuth: {
        type: "credentials",
        users: [{
            username: "root",
            password: "$2a$08$YCJb/v9xfKevOq0KPIkzLeuQHHyyjIh.iDjuAoWIpiUT9hWS9yhLS",
            permissions: "*"
        }]
    },
    httpNodeCors: {
        origin: "*",
        methods: "GET,PUT,POST,DELETE"
    },
    logging: {
        console: {
            level: "info",
            metrics: false,
            audit: false
        }
    },
    editorTheme: {
        projects: {
            enabled: false
        }
    },
}

docker-compose


version: '3'
services:
  nodered:
    build: .
    ports:
     - "1880:1880"
     - "1881:1881/udp"
    volumes:
     - nodered-data:/data
    networks:
      - nodered-net
volumes:
  nodered-data:
networks:
  nodered-net:

Node-RED のフロー

image.png

[
    {
        "id": "a516cbe4.dd80a8",
        "type": "udp in",
        "z": "611156f9.47b338",
        "name": "",
        "iface": "",
        "port": "1881",
        "ipv": "udp4",
        "multicast": "false",
        "group": "",
        "datatype": "buffer",
        "x": 140,
        "y": 60,
        "wires": [
            [
                "172c9d51.c36283"
            ]
        ]
    },
    {
        "id": "172c9d51.c36283",
        "type": "debug",
        "z": "611156f9.47b338",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 350,
        "y": 60,
        "wires": []
    }
]
2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5