Socket
Socket
Sign inDemoInstall

actionhero-socket-server

Package Overview
Dependencies
1
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    actionhero-socket-server

A TCP and JSON server for actionhero


Version published
Weekly downloads
8
Maintainers
1
Install size
201 kB
Created
Weekly downloads
 

Readme

Source

Actionhero Socket Server

test

As of Actionhero v21, the socket server is not included with Actionhero by default. You can add it (this package) via npm install actionhero-socket-server.

As of version 3.0.0 of this package, Actionhero v28+ is required.

❯ telnet localhost 5000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
{"welcome":"actionhero.welcomeMessage","context":"api"}
randomNumber
{"randomNumber":0.11296216329530862,"stringRandomNumber":"Your random number is 0.11296216329530862","context":"response","messageId":"8778822d-0953-4d0c-9c04-98cd53b53b7d"}
exit
{"status":"Bye","context":"api"}
Connection closed by foreign host.

Installation

  1. Add the package to your actionhero project: npm install actionhero-socket-server --save
  2. Copy the config file into your project cp ./node_modules/actionhero-socket-server/src/config/socket.ts src/config/socket.ts
  3. Enable the plugin:
// in config/plugins.ts
import * as path from "path";

export const DEFAULT = {
  plugins: () => {
    return {
      "actionhero-socket-server": {
        path: path.join(
          __dirname,
          "..",
          "..",
          "node_modules",
          "actionhero-socket-server"
        ),
      },
    };
  },
};
  1. Add a serializer for errors:
// in config/errors.ts
// you are adding config.errors.serializers.socket

socket: error => {
  if (error.message) {
    return String(error.message);
  } else {
    return error;
  }
},

Options

All options are exposed via the config file:

const namespace = "socket";

declare module "actionhero" {
  export interface ActionheroConfigInterface {
    [namespace]: ReturnType<typeof DEFAULT[typeof namespace]>;
  }
}

export const DEFAULT = {
  [namespace]: () => {
    return {
      enabled: true,
      // TCP or TLS?
      secure: false,
      // Passed to tls.createServer if secure=true. Should contain SSL certificates
      serverOptions: {},
      // Port or Socket
      port: 5000,
      // Which IP to listen on (use 0.0.0.0 for all)
      bindIP: "0.0.0.0",
      // Enable TCP KeepAlive pings on each connection?
      setKeepAlive: false,
      // Delimiter string for incoming messages
      delimiter: "\n",
      // Maximum incoming message string length in Bytes (use 0 for Infinite)
      maxDataLength: 0,
    };
  },
};

Keywords

FAQs

Last updated on 01 Feb 2022

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc