NEQTO Docs
  • Languages icon日本語
    • English
  • ドキュメント
  • API
  • FAQ

›neqto.js

Getting Started

  • NEQTO Hello World!
  • Tutorial Step 1. NEQTO Console設定
  • Tutorial Step 2. デバイス設定とサービスの開始 (NEQTO Bridge)
  • Tutorial Step 2. デバイス設定とサービスの開始 (STM32 Discovery)
  • Tutorial Step 2. デバイス設定とサービスの開始 (SPRESENSE)
  • Tutorial Step 3. スクリプトを使ったアプリケーション開発

NEQTO

  • NEQTO アカウント登録
  • サブアカウント
  • APIの利用
  • GCP用NEQTO CloudSync
  • NEQTO Engineファームウェアリスト
  • お問い合わせに関するガイドライン

NEQTO Console

  • はじめに
  • 基本情報
  • 管理者専用の操作
  • デバイス管理
  • Linuxデバイス管理
  • 一括登録
  • スクリプト
  • アクション & コンタクト
  • Consoleでデータを表示
  • NEQTO Apps

    • NEQTO Apps について
    • NEQTO Infinitypool
    • NEQTO Insights
    • NEQTO Custodia
    • NEQTO Flow
  • Machine Driver
  • 推奨ブラウザ
  • 請求情報

SPRESENSE

    ハードウェア仕様

    • 01. About Spresense

    ソフトウェア仕様

    • 01. 動作フロー
    • 02. 初期インストール
    • 03. Spresense Wi-Fi 初期設定
    • 04. Spresense LTE-M 初期設定
    • 05. デバッグログ取得方法
    • 06. システムLED動作
    • 07. イベントメッセージ
    • 08. ファームウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. Sleep
    • 10. RTC
    • 11. GPIO
    • 12. UART
    • 13. SPI
    • 14. I2C
    • 15. ADC
    • 16. GNSS
    • 17. Camera
    • 18. Utils
    • 19. nqSpresense
    • 20. nqService
    • 21. nqMqtt
    • 22. nqFOTA
    • 23. nqWiFi
    • 24. nqLte

STM32 Discovery

    ハードウェア仕様

    • 01. About STM32 Discovery Kit (B-L4S5I-IOT01A)

    ソフトウェア仕様

    • 01. 動作フロー
    • 02. 初期インストール
    • 03. STM32 Discovery Wi-Fi 初期設定
    • 04. デバッグログ取得方法
    • 05. システムLED動作
    • 06. イベントメッセージ
    • 07. ファームウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. Sleep
    • 10. RTC
    • 11. UserSW
    • 12. GPIO
    • 13. UART
    • 14. SPI
    • 15. I2C
    • 16. ADC
    • 18. Utils
    • 19. nqDiscovery
    • 20. nqService
    • 21. nqMqtt
    • 22. nqFOTA
    • 23. nqWiFi

NEQTO Bridge

    ハードウェア仕様

    • 01. NEQTO Bridge Module
    • 02. NEQTO Bridge Wi-Fi Module
    • 03. NEQTO Bridge LTE-1 Module
    • 04. NEQTO Bridge LTE-M/NB Module
    • 05. NEQTO Bridge IO Board
    • 06. NEQTO Bridge Digital IO Board
    • 07. NEQTO Bridge Connector Board

    ソフトウェア仕様

    • 01. 動作フロー
    • 02. NEQTO Bridge Wi-Fi Module 初期設定
    • 03. NEQTO Bridge LTE Module 初期設定
    • 04. デバッグログ取得方法
    • 05. システムLED動作
    • 06. イベントメッセージ
    • 07. ファームウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. Sleep
    • 10. RTC
    • 11. UserSW
    • 12. GPIO
    • 13. UART
    • 14. SPI
    • 15. I2C
    • 16. ADC
    • 17. BLE
    • 18. Utils
    • 19. nqBridge
    • 20. nqService
    • 21. nqMqtt
    • 22. nqFOTA
    • 23. nqWiFi
    • 24. nqLte
    • 25. nqLAN
    • 26. nqEx

Linux-based device

    ソフトウェア仕様

    • 01. システム要件
    • 02. インストール
    • 03. ソフトウェア構成
    • 04. 動作フロー
    • 05. デバッグログ取得方法
    • 06. イベントメッセージ
    • 07. ソフトウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. RTC
    • 10. UNIXSocket
    • 11. FileSystem
    • 12. SubProcess
    • 13. Utils
    • 14. nqLinux
    • 15. nqService
    • 16. nqMqtt
    • 17. nqFOTA
    • 18. nqLAN

neqto.js Libraries

  • About neqto.js Libraries
  • UART

    • GM65 Barcode Reader
    • SRF Ultrasonic Range Finder - Serial Mode

    I2C

    • HTS221 v2 Temperature and Humidity Sensor
    • LIS2DW12 v2 Accelerometer
    • SRF Ultrasonic Range Finder - I2C Mode
    • [Archive] HTS221 Temperature and Humidity Sensor
    • [Archive] LIS2DW12 Accelerometer

    Utils

    • RTC Alarm Synchronized Scheduler

    Integration

    • AWS S3 v2
    • AWS IoT Core v2
    • Azure IoT v2
    • GCP IoT Core
    • [Archive] AWS S3
    • [Archive] AWS IoT Core

neqto.js Snippets

  • About neqto.js Snippets
  • DataDog
  • Dropbox
  • Google Sheets
  • InfluxDB
  • Oracle Cloud Object Storage
  • Salesforce
  • SAP Cloud Platform Internet of Things
  • Splunk
  • Niagara

Release Notes

  • NEQTO Console アップデート
  • NEQTO Firmware (Bridge Wi-Fi/LTE Module) リリース
  • NEQTO Firmware (STM32 Discovery Wi-Fi) リリース
  • NEQTO Firmware (Spresense Wi-Fi/LTE-M) リリース
  • NEQTO Engine Linux版 リリース

10. UNIXSocket

unixsocketオブジェクトは、UNIXドメインソケットを使用した外部アプリケーション間プロセス通信機能を提供する組み込みオブジェクトです。

機能概要:

  • UNIXソケットサーバー機能を提供します。
  • UNIXソケットクライアント機能を提供します。
  • ソケットタイプはSOCK_STREAM(ストリーム指向)となります。
  • 任意のパス名を指定可能です。抽象ソケットアドレスも使用可能です。

制限事項:

  • 使用可能なUNIXソケットリソースは3本です。
  • 1つのUNIXソケットサーバーに接続できるクライアント数は最大3となります。



unixsocket Global Object

Methods()/PropertiesSummaryVersionNote
unixsocket.create()UNIXソケットインスタンスを生成します。



Details

unixsocket.create(mode,path[,options])

UNIXソケットインスタンスを生成します。

NameTypeM/OSummaryNote
modestringmandatory'server'または'client'を指定します。
pathstringmandatoryソケットパスを指定します。
例: /tmp/test.unixsocket
抽象ソケットアドレスを指定する場合は、パスの先頭に'@'を挿入します。
例: @/tmp/test.unixsocket
optionsObjectoptionalオプション
詳細はOptionsを参照してください。
return{Server}, {Client}, null-{Server} : 生成された{Server}
{Client} : 生成された{Client}
null : リソース不足でインスタンスの生成が失敗した場合、指定されたパスのインスタンスが既に生成されている場合(サーバー時)、指定されたパスが存在しない場合(クライアント時)
パラメータ異常の場合は例外となります。

Options

NameTypeM/OSummaryNote
recvBuffSizenumberoptional受信バッファサイズ[Byte]
設定範囲: 1~2,147,483,647
デフォルト値は4096となります。



{Server}

Methods()/PropertiesSummaryVersionNote
.on()イベントハンドラを登録します。
.listen()クライアントのソケット接続待ちを開始します。
.read()クライアントから受信したデータを読み出します。
.write()クライアントにデータを送信します。
.isConnected()ソケットの接続状態を取得します。
.close()ソケットを切断します。
.release()サーバーリソースを解放します。



Details

.on(event,callback)

イベントハンドラを登録します。

NameTypeM/OSummaryNote
eventstringmandatoryイベント名
使用できるイベント名は、accept, readable, closeとなります。
callback()functionmandatoryイベント発生時にコールバック処理を実行します。
returnundefined--パラメータ異常の場合は例外となります。

event : ’accept’

クライアントがソケット接続した際にコールバック処理を実行します。

ArgumentsTypeSummaryNote
indexnumber割り当てられたクライアントインデックス

event : ’readable’

ソケット受信バッファにデータが存在する場合、コールバック処理を実行します。

ArgumentsTypeSummaryNote
indexnumberイベントが発生したクライアントインデックス

event : ’close’

ソケット切断が発生した際にコールバック処理を実行します。

尚、ソケット受信バッファにデータが存在する状態でクライアント側からソケット切断された場合、コールバック処理はすぐに実行されません。必ず.read()メソッドで全てのデータを読み出す必要があります。

ArgumentsTypeSummaryNote
indexnumberイベントが発生したクライアントインデックス

.listen()

クライアントのソケット接続待ちを開始します。

本メソッドは、インスタンス生成後に一度のみ実行します。
以降、クライアントが接続する度にクライアント管理番号(クライアントインデックス)が割り当てられます。クライアントインデックスは'accept'イベント通知もしくは.isConnected()メソッドを使用して確認することができます。インデックスは0~クライアントの最大接続数 - 1の範囲のうちいずれかとなります。

NameTypeM/OSummaryNote
returnboolean-true: 成功
false: 失敗

.read(index[,isBin])

クライアントから受信したデータを読み出します。

NameTypeM/OSummaryNote
indexnumbermandatory対象のクライアントインデックスを指定します。
isBinbooleanoptional読み出しデータの形式を指定します。
true: バイナリデータ形式で読み出し
false: 文字列形式で読み出し
デフォルト値はfalseとなります。
returnArrayBuffer, string-読み出しデータ
戻り値の型はisBinで決定されます。
trueを指定した場合はArrayBuffer型、falseを指定した場合は、string型となります。
読み出しデータはrecvBuffSizeで指定したサイズ以下となります。読み出しデータがない場合はサイズが0となります。
パラメータ異常の場合は例外となります。

.write(index,data)

クライアントにデータを送信します。

NameTypeM/OSummaryNote
indexnumbermandatory対象のクライアントインデックスを指定します。
datastring, ArrayBuffermandatory送信データ
returnnumber-送信されたデータサイズ送信が失敗した場合は-1を返します。
パラメータ異常の場合は例外となります。

.isConnected(index)

ソケットの接続状態を取得します。

NameTypeM/OSummaryNote
indexnumbermandatory対象のクライアントインデックスを指定します。
returnboolean-ソケットの接続状態
true: ソケット接続済み
false: ソケット未接続
パラメータ異常の場合は例外となります。

.close(index)

ソケットを切断します。

NameTypeM/OSummaryNote
indexnumbermandatory対象のクライアントインデックスを指定します。
returnundefined--パラメータ異常の場合は例外となります。

.release()

サーバーリソースを解放します。
尚、接続中のソケットはすべて切断されます。

NameTypeM/OSummaryNote
returnundefined--



{Client}

Methods()/PropertiesSummaryVersionNote
.on()イベントハンドラを登録します。
.connect()サーバーにソケット接続します。
.read()サーバーから受信したデータを読み出します。
.write()サーバーにデータを送信します。
.isConnected()ソケットの接続状態を取得します。
.close()ソケットを切断します。
.release()クライアントリソースを解放します。



Details

.on(event,callback)

イベントハンドラを登録します。

NameTypeM/OSummaryNote
eventstringmandatoryイベント名
使用できるイベント名は、connect, readable, closeとなります。
callback()functionmandatoryイベント発生時にコールバック処理を実行します。
returnundefined--パラメータ異常の場合は例外となります。

event : ’connect’

ソケット接続した際にコールバック処理を実行します。

event : ’readable’

ソケット受信バッファにデータが存在する場合、コールバック処理を実行します。

event : ’close’

ソケット切断が発生した際にコールバック処理を実行します。
再接続する場合は、.connect()メソッドを実行する必要があります。

尚、ソケット受信バッファにデータが存在する状態でサーバー側からソケット切断された場合、コールバック処理はすぐに実行されません。必ず.read()メソッドで全てのデータを読み出す必要があります。

.connect()

サーバーにソケット接続します。

NameTypeM/OSummaryNote
returnboolean-true: 成功
false: 失敗

.read([isBin])

サーバーから受信したデータを読み出します。

NameTypeM/OSummaryNote
isBinbooleanoptional読み出しデータの形式を指定します。
true: バイナリデータ形式で読み出し
false: 文字列形式で読み出し
デフォルト値はfalseとなります。
returnArrayBuffer, string-読み出しデータ
戻り値の型はisBinで決定されます。
trueを指定した場合はArrayBuffer型、falseを指定した場合は、string型となります。
読み出しデータはrecvBuffSizeで指定したサイズ以下となります。読み出しデータがない場合はサイズが0となります。
パラメータ異常の場合は例外となります。

.write(data)

サーバーにデータを送信します。

NameTypeM/OSummaryNote
datastring, ArrayBuffermandatory送信データ
returnnumber-送信されたデータサイズ送信が失敗した場合は-1を返します。
パラメータ異常の場合は例外となります。

.isConnected()

ソケットの接続状態を取得します。

NameTypeM/OSummaryNote
returnboolean-ソケットの接続状態
true: ソケット接続済み
false: ソケット未接続

.close()

ソケットを切断します。
再接続する場合は、.connect()メソッドを実行する必要があります。

NameTypeM/OSummaryNote
returnundefined--

.release()

クライアントリソースを解放します。
尚、接続中のソケットは切断されます。

NameTypeM/OSummaryNote
returnundefined--



オブジェクトの使用例

Sample 1

UNIXソケットサーバーのサンプルです。
クライアントから受信したデータをループバック送信します。

//The maximum number of clients that can connect to a UNIX socket server is 3
var readEvt = [false,false,false];

var path ='/tmp/test.unixsocket'
var server = unixsocket.create('server', path);
if(!server) throw new Error('Failed to create server instance');

server.on('accept', function(index) {
    print('accept', index);
});
server.on('readable', function(index) {
    print('readable', index);
    readEvt[index] = true;
});
server.on('close', function(index) {
    print('close', index);
});

if(!server.listen()) throw new Error('Failed to start server listening'); 

print('Server listening started! [' + path + ']');

while(1) {
    for(var i=0; i<readEvt.length; i++) {
        if(readEvt[i]) {
            readEvt[i] = false;
            var rStr = server.read(i);
            print('recv ' + i + ': ' + rStr.replace(/[\x00-\x1F\x7F-\x9F]/g,'\\') + ' (' + rStr.length + ')');
             //Loopback
            if(server.write(i, rStr) == rStr.length) {
                print('send ' + i + ': OK');
            }
        }
    }
}

Sample 2

UNIXソケットクライアントのサンプルです。
サーバー接続中、1秒周期でデータを送信します。又、サーバーからの受信データを常時待ち受けます。

var path ='/tmp/test.unixsocket'
var client = unixsocket.create('client', path);
if(!client) throw new Error('Failed to create client instance');

client.on('connect', function() {
    print('connect');
});
client.on('readable', function() {
    print('readable');
});
client.on('close', function() {
    print('close');
});

var sendEvt = false;
var tmobj = setInterval(function() { sendEvt = true; }, 1000);

while(1) {
    if(!client.isConnected()) {
        print('Connecting... [' + path + ']');
        if(!client.connect()) {
            setTimeout(1000).wait(); //1sec wait
        }
    } else {
        if(sendEvt) {
            sendEvt = false;
            var sStr = Date.now() + ' to server\n';
            if(client.write(sStr) == sStr.length) {
                print('send: OK');
            }
        }
        var rStr = client.read();
        if(rStr.length) {
            print('recv: ' + rStr.replace(/[\x00-\x1F\x7F-\x9F]/g,'\\') + ' (' + rStr.length + ')');
        }
    }
}



Updated: 2022-09-02
← 前次 →
  • unixsocket Global Object
  • Details
    • unixsocket.create(mode,path[,options])
    • Options
  • {Server}
  • Details
    • .on(event,callback)
    • event : ’accept’
    • event : ’readable’
    • event : ’close’
    • .listen()
    • .read(index[,isBin])
    • .write(index,data)
    • .isConnected(index)
    • .close(index)
    • .release()
  • {Client}
  • Details
    • .on(event,callback)
    • event : ’connect’
    • event : ’readable’
    • event : ’close’
    • .connect()
    • .read([isBin])
    • .write(data)
    • .isConnected()
    • .close()
    • .release()
  • オブジェクトの使用例
    • Sample 1
    • Sample 2
NEQTO とはニュースサービスFAQプライバシーポリシー}
NEQTO Console
はじめに基本情報管理者専用の操作デバイス管理NEQTO Apps
NEQTO Bridge
NEQTO Bridge ピン配置NEQTO Bridge Wi-Fi ModuleNEQTO Bridge LTE-1 Moduleデバッグログ取得方法イベントメッセージ
APIのドキュメント
APIの利用グローバル APIリージョン APIAPIサービス利用規約
Jigsaw, Inc.
© 2023 JIG-SAW INC.