Actionhero Socket Server
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
.
❯ 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":"actionhero.goodbyeMessage","context":"api"}
Connection closed by foreign host.
Installation
- Add the package to your actionhero project:
npm install actionhero-socket-server --save
- Copy the config file into your project
cp ./node_modules/actionhero-socket-server/src/config/servers/socket.ts src/config/servers/socket.ts
- Enable the plugin:
import * as path from "path";
export const DEFAULT = {
plugins: () => {
return {
"actionhero-socket-server": {
path: path.join(
__dirname,
"..",
"..",
"node_modules",
"actionhero-socket-server"
),
},
};
},
};
- Add a serializer for errors:
socket: error => {
if (error.message) {
return String(error.message);
} else {
return error;
}
},
Options
All options are exposed via the config file:
export const DEFAULT = {
servers: {
socket: (config) => {
return {
enabled: true,
secure: false,
serverOptions: {},
port: 5000,
bindIP: "0.0.0.0",
setKeepAlive: false,
delimiter: "\n",
maxDataLength: 0,
};
},
},
};