Connection Methods
Connection Methods
The Eriksson Beam API provides several ways to connect to Eriksson Beam, each suited to different use cases. This guide helps you choose the right approach.
Overview
| Class | Use Case | Manages Process |
|---|---|---|
| ErikssonBeamLauncher | Start fresh instance with specific files | Yes |
| ErikssonBeamFinder | Find and connect to any running instance | No |
| ErikssonBeamClient | Connect to specific process by ID | No |
| ErikssonBeamFileManager | Batch file operations with auto-relaunch | Yes |
Decision Guide
| Scenario | Use This Class |
|---|---|
| Launch Eriksson Beam for batch file processing | ErikssonBeamFileManager |
| Launch Eriksson Beam for single/few files | ErikssonBeamLauncher |
| Connect to running instance (known Process ID) | ErikssonBeamClient.AttemptConnection |
| Connect to running instance (unknown Process ID) | ErikssonBeamFinder |
Quick Comparison
ErikssonBeamLauncher
Best for: Starting automation from scratch, guaranteed clean state.
var args = new ErikssonBeamLauncherArgs
{
LicenseKey = licenseKey,
ExecutablePath = @"C:\...\ErikssonBeam.exe",
FilesToOpen = new[] { @"C:\Projects\beam.ebf" },
CloseErikssonBeamOnClientDisconnect = true
};
using var launcher = await ErikssonBeamLauncher.LaunchErikssonBeam(args);
var client = launcher.Client;
ErikssonBeamFinder
Best for: Connecting to user-launched Eriksson Beam instance.
var args = new ErikssonBeamConnectionAttemptArgs
{
LicenseKey = licenseKey
};
var client = await ErikssonBeamFinder.GetFirstSupportedBeamClient(args);
// or
var client = await ErikssonBeamFinder.GetFirstClientWithFile("project.ebf", args);
ErikssonBeamClient
Best for: Connecting to a specific known process.
var args = new ErikssonBeamConnectionAttemptArgs
{
LicenseKey = licenseKey,
ProcessID = 12345 // Known process ID
};
var client = await ErikssonBeamClient.AttemptConnection(args);
ErikssonBeamFileManager
Best for: Processing many files with automatic handling of Eriksson Beam lifecycle.
var args = new ErikssonBeamLauncherArgs
{
LicenseKey = licenseKey,
ExecutablePath = @"C:\...\ErikssonBeam.exe"
};
using var fileManager = await ErikssonBeamFileManager.Initialize(args);
await fileManager.OpenFiles(new[] { "file1.ebf", "file2.ebf" });
var client = fileManager.Launcher.Client;
Important Notes
10-Minute Idle Timeout
Eriksson Beam only listens for API connections for 10 minutes after launch. This timeout:
- Is not reset by manually interacting with the UI
- Requires restarting Eriksson Beam to reset
If connections fail, restart Eriksson Beam and try again.
Disposal
Always dispose of connection objects properly:
// Using statement (recommended)
using var launcher = await ErikssonBeamLauncher.LaunchErikssonBeam(args);
// Or explicit disposal
var client = await ErikssonBeamFinder.GetFirstSupportedBeamClient(args);
try
{
// Work with client...
}
finally
{
client.Dispose();
}
Launcher vs Client Disposal
- ErikssonBeamLauncher.Dispose(): Closes client AND optionally closes Eriksson Beam
- ErikssonBeamClient.Dispose(): Only closes the client connection
Next Steps
- ErikssonBeamLauncher - Launch fresh instances
- ErikssonBeamFinder - Discover running instances
- ErikssonBeamClient - Direct connection details
- ErikssonBeamFileManager - Batch file operations