This guide explains how to create a basic Teltonika server using the Teltonika SDK.
You will learn how to set up both a TCP server and a TLS (secure) server to receive data from Teltonika devices.
A TCP server is the most common way to receive data from Teltonika devices.
Devices connect to the server, authenticate using their IMEI, and then start sending AVL data packets.
import {
TeltonikaTCPServer,
TeltonikaDataCodec,
TeltonikaGPRSCodec,
} from '@groupe-savoy/teltonika-sdk';
const server = new TeltonikaTCPServer({
codecs: {
data: TeltonikaDataCodec.Codec8e,
gprs: TeltonikaGPRSCodec.Codec12
},
timeout: 30000, // Optional: connection timeout in milliseconds
});
// Triggered when a device successfully connects
server.on('init', (device) => {
console.log(`Device connected: ${device.imei}`);
});
// Triggered when data is received from a device
server.on('data', (device, data) => {
console.log(`Data received from ${device.imei}:`, data);
});
// Triggered on parsing or connection errors
server.on('error', (device, error) => {
console.error(`Error from device ${device?.imei}:`, error);
});
// Start listening for incoming connections
server.listen(5000, '0.0.0.0');
A TLS server allows encrypted communication between devices and your server. This is recommended for production environments where security is required.
import {
TeltonikaTLSServer,
TeltonikaDataCodec,
TeltonikaGPRSCodec,
} from '@groupe-savoy/teltonika-sdk';
import fs from 'fs';
const server = new TeltonikaTLSServer({
codecs: {
data: TeltonikaDataCodec.Codec8e,
gprs: TeltonikaGPRSCodec.Codec12
},
key: fs.readFileSync('./certs/server.key'),
cert: fs.readFileSync('./certs/server.crt'),
timeout: 30000,
});
// Device connected
server.on('init', (device) => {
console.log(`Secure device connected: ${device.imei}`);
});
// Data received
server.on('data', (device, data) => {
console.log(`Secure data from ${device.imei}:`, data);
});
// Error handling
server.on('error', (device, error) => {
console.error(`TLS error from ${device?.imei}:`, error);
});
// Start TLS server
server.listen(5443, '0.0.0.0');
You now have a working Teltonika server ready to receive real device data.