/lan

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

Primary LanguageJavaScriptMIT LicenseMIT

Lan IoT Server

Build Status Code Climate Test Coverage

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

Inspired by Qest

Test on Node Version: v5,v6

Architecture:

IoT Struct

详细可见:《自己动手设计物联网》

Designiot

立即购买:亚马逊京东

Lan Server Layer:

Lan Struct

配置

默认配置:

{
  "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"
}

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 --recursive

2.安装依赖

npm install
bower install 

3.修改config下的配置

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

4.数据库初始化

npm install -g sequelize-cli
sequelize db:migrate

5.Start Cron

node 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

node 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~2016 Phodal. This code is distributed under the MIT license.