mirror of
https://github.com/openmhz/trunk-server.git
synced 2026-11-12 08:47:40 -05:00
tested
This commit is contained in:
59
utils/websocket_example/index.js
Normal file
59
utils/websocket_example/index.js
Normal file
@@ -0,0 +1,59 @@
|
||||
// Install first: npm install socket.io-client
|
||||
const io = require('socket.io-client');
|
||||
const serverUrl = 'http://api.openmhz.test'; // Update URL to match your server
|
||||
|
||||
// Connect to the WebSocket server
|
||||
const socket = io(serverUrl); // Update URL to match your server
|
||||
|
||||
|
||||
// filterType can be "group", "talkgroup", "all", or "firehose"
|
||||
// if filterType is "group" then filterCode is the group ID
|
||||
// if filterType is "talkgroup" then filterCode is the talkgroup ID
|
||||
// if filterType is "all" then filterCode is ""
|
||||
// if filterType is "firehose" then filterCode is set to the FIREHOSE_KEY
|
||||
|
||||
// shortName is the shortName for the System to monitor, unless it is in firehose mode, then it is set to ""
|
||||
// filterStarred is ignored, so just set to false
|
||||
|
||||
|
||||
|
||||
// Connection event handlers
|
||||
socket.on('connect', () => {
|
||||
console.log('Connected to server');
|
||||
socket.emit("start", {
|
||||
filterCode: "",
|
||||
filterType: "all",
|
||||
filterName: "Test Client",
|
||||
filterStarred: false,
|
||||
shortName: "test"
|
||||
});
|
||||
});
|
||||
|
||||
socket.on('disconnect', () => {
|
||||
console.log('Disconnected from server');
|
||||
});
|
||||
|
||||
// Listen for incoming messages
|
||||
socket.on('new message', (message) => {
|
||||
message = JSON.parse(message);
|
||||
const date = new Date(message.time);
|
||||
console.log('\n=== Call Details ===');
|
||||
console.log(`Time: ${date.toLocaleString()}`);
|
||||
console.log(`Talkgroup: ${message.talkgroupNum}`);
|
||||
console.log(`System: ${message.shortName}`);
|
||||
console.log(`Duration: ${message.len} seconds`);
|
||||
console.log(`Frequency: ${(message.freq / 1000000).toFixed(3)} MHz`);
|
||||
console.log(`Emergency: ${message.emergency ? 'Yes' : 'No'}`);
|
||||
console.log('\nSource List:');
|
||||
message.srcList.forEach(src => {
|
||||
console.log(`- Source ${src.src} at position ${src.pos}s`);
|
||||
});
|
||||
console.log('\nAudio URL:', message.url);
|
||||
console.log('==================\n');
|
||||
});
|
||||
|
||||
// Error handling
|
||||
socket.on('connect_error', (error) => {
|
||||
console.error('Connection error:', error);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user