Refactor smartsocket implementation for improved WebSocket handling and message protocol
- Updated test files to use new testing library and reduced test cycles for efficiency. - Removed dependency on smartexpress and integrated direct WebSocket handling. - Enhanced Smartsocket and SmartsocketClient classes to support new message types and authentication flow. - Implemented a new message interface for structured communication between client and server. - Added external server support for smartserve with appropriate WebSocket hooks. - Improved connection management and error handling in SocketConnection and SocketRequest classes. - Cleaned up code and removed deprecated socket.io references in favor of native WebSocket.
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
// tslint:disable-next-line:no-implicit-dependencies
|
||||
import { expect, tap } from '@push.rocks/tapbundle';
|
||||
import { expect, tap } from '@git.zone/tstest/tapbundle';
|
||||
|
||||
import * as smartsocket from '../ts/index.js';
|
||||
|
||||
@@ -64,6 +63,9 @@ tap.test('should react to a new websocket connection from client', async () => {
|
||||
url: 'http://localhost',
|
||||
alias: 'testClient1',
|
||||
autoReconnect: true,
|
||||
maxRetries: 20,
|
||||
initialBackoffDelay: 500,
|
||||
maxBackoffDelay: 3000,
|
||||
});
|
||||
testSmartsocketClient.addSocketFunction(testSocketFunctionClient);
|
||||
await testSmartsocketClient.connect();
|
||||
@@ -129,7 +131,8 @@ tap.test('should be able to switch to a new server', async (toolsArg) => {
|
||||
await testSmartsocket.stop();
|
||||
testSmartsocket = new smartsocket.Smartsocket({ alias: 'testserver2', port: testConfig.port });
|
||||
await testSmartsocket.start();
|
||||
await toolsArg.delayFor(30000);
|
||||
// Wait for client to reconnect with shorter backoff settings
|
||||
await toolsArg.delayFor(5000);
|
||||
});
|
||||
|
||||
tap.test('should be able to locate a connection tag after reconnect', async (tools) => {
|
||||
@@ -149,4 +152,4 @@ tap.test('should close the server', async (tools) => {
|
||||
tools.delayFor(1000).then(() => process.exit(0));
|
||||
});
|
||||
|
||||
tap.start();
|
||||
export default tap.start();
|
||||
|
||||
Reference in New Issue
Block a user