Nutritious Pumpkin Meal

    lan

    0.2.0 • Public • Published

    Lan Server Layer

    Build Status Code Climate Test Coverage

    Internet of Things Server Layer with CoAP, WebSocket, MQTT, HTTP Protocol.

    Similar to Ponte & Inspired by Qest

    Test on Node Version: 0.12.7

    IoT Architecture:

    IoT Struct

    Lan Server Layer:

    Lan Struct

    Configure

    Default Config:

    {
      "encrypt": "crypto",
      "db_url": "mongodb://localhost:27017/lan",
      "db_collection": "documents",
      "db_collection_user": "user",
      "modules": [
        "coap",
        "http",
        "mqtt",
        "websocket"
      ],
      "port": {
        "http": 8899,
        "websocket": 8898,
        "coap": 5683,
        "mqtt": 1883
      },
      "logging" :true,
      "secret": "keyboard cat"
    }

    Import make sure change secret

    encrypt: ["crypto", "bcrypt"]

    modules: ["coap", "http", "mqtt", "websocket"]

    Use bcrypt, please install it:

    npm install --save bcrypt
    

    Docker

    Require: Docker

    docker build .
    

    安装(Setup)

    必装:

    1. MongoDB -> NoSQL: 数据存储
    2. Sqlite || MySQL || PostgreSQL || MariaDB || MSSQL -> SQL: 存储用户信息

    然后:

    1.Clone

    git clone https://github.com/phodal/lan
    

    2.安装依赖

    npm install
    bower install 
    

    3.修改config下的配置

    /config.json 数据库配置
    /default.json Lan系统配置   
    

    4.数据库初始化

    npm install -g sequelize-cli
    sequelize db:migrate
    

    5.Start Cron

    npm jobs/cron.js
    

    6.运行

    npm start    
    

    Setup

    require: Install

    1. MongoDB
    2. Sqlite || MySQL || PostgreSQL || MariaDB || MSSQL -> SQL: save user info

    Then.

    1.Install dependencies

    npm install
    

    Or Just Production only:

    npm install --production
    

    2.Setup Database

    sequelize db:migrate 
    

    3.Start Cron

    npm jobs/cron.js
    

    4.Run

    npm start
    

    Test With Tool

    HTTP

    Get

    curl --user root:root -X GET -H "Content-Type: application/json" http://localhost:8899/topics/root
    

    PUT/POST - cUrl

    curl --user root:root -X PUT -d '{ "dream": 1 }' -H "Content-Type: application/json" http://localhost:8899/topics/root
    

    MQTT

    Publish - Mosquitto

    mosquitto_pub -u root -P root -h localhost -d -t lettuce -m "Hello, MQTT. This is my first message."
    

    Subscribe - Mosquitto

    mosquitto_sub -t message -h localhost -u root -P root
    

    CoAP

    POST/PUT - libcoap

    coap-client -e "{message: 'hello,world}" -m put coap://127.0.0.1/topic?root:root
    

    GET - libcoap

    coap-client -m get coap://127.0.0.1:5683/topic?root:root
    

    GET/POST/PUT - Copper

    1. Visit coap://127.0.0.1:5683/topic?root:root

    GET: Click GET

    POST: Type on Outgoing, Click POST

    WebSocket

    Message

    node test_scripts/ws_test.js
    

    Auth

    Standalone (单机)

    User -> SQL Database (Auth)

    SQL Database -> NoSQL (Save)

    Multi

    User -> SQL Database (Save)

    SQL Database -> NoSQL (Cron Job || MQ)

    User -> NoSQL (Auth && Save)

    License

    © 2015 Phodal Huang. This code is distributed under the MIT license.

    Keywords

    Install

    npm i lan

    DownloadsWeekly Downloads

    4

    Version

    0.2.0

    License

    MIT

    Last publish

    Collaborators

    • gmszone