mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-06-26 06:24:36 +00:00
log locally for transport related logs to avoid stack overflow
This commit is contained in:
@@ -242,7 +242,7 @@
|
||||
* better error logging in server DONE 12/16/2024
|
||||
* store and archive player cookies DONE 12/17/2024
|
||||
* make ips less precise for user safety DONE 12/17/2024
|
||||
* send client logs back to server
|
||||
* send client logs back to server
|
||||
* seperate server config from client config
|
||||
* right click brings up player info menu
|
||||
* give naval units health
|
||||
|
||||
+24
-10
@@ -1,3 +1,11 @@
|
||||
declare global {
|
||||
interface Console {
|
||||
localLog: typeof console.log;
|
||||
localWarn: typeof console.warn;
|
||||
localError: typeof console.error;
|
||||
}
|
||||
}
|
||||
|
||||
import { EventBus } from "../core/EventBus"
|
||||
import { LogSeverity } from "../core/Schemas"
|
||||
import { SendLogEvent } from "./Transport"
|
||||
@@ -15,22 +23,28 @@ export function initializeLogSender(eventBus: EventBus) {
|
||||
const originalWarn = console.warn
|
||||
const originalError = console.error
|
||||
|
||||
const log = (msg: string): void => {
|
||||
eventBus.emit(new SendLogEvent(LogSeverity.Info, msg))
|
||||
originalLog.call(console, msg) // Use the original method
|
||||
// Define networked logging functions (both local and remote)
|
||||
const log = (...args: any[]): void => {
|
||||
eventBus.emit(new SendLogEvent(LogSeverity.Info, args.join(' ')))
|
||||
originalLog.apply(console, args)
|
||||
}
|
||||
|
||||
const warn = (msg: string): void => {
|
||||
eventBus.emit(new SendLogEvent(LogSeverity.Warn, msg))
|
||||
originalWarn.call(console, msg) // Use the original method
|
||||
const warn = (...args: any[]): void => {
|
||||
eventBus.emit(new SendLogEvent(LogSeverity.Warn, args.join(' ')))
|
||||
originalWarn.apply(console, args)
|
||||
}
|
||||
|
||||
const error = (msg: string): void => {
|
||||
eventBus.emit(new SendLogEvent(LogSeverity.Error, msg))
|
||||
originalError.call(console, msg) // Use the original method
|
||||
const error = (...args: any[]): void => {
|
||||
eventBus.emit(new SendLogEvent(LogSeverity.Error, args.join(' ')))
|
||||
originalError.apply(console, args)
|
||||
}
|
||||
|
||||
// Replace console methods
|
||||
// Store local-only logging functions
|
||||
console.localLog = originalLog.bind(console)
|
||||
console.localWarn = originalWarn.bind(console)
|
||||
console.localError = originalError.bind(console)
|
||||
|
||||
// Replace main console methods with networked versions
|
||||
console.log = log
|
||||
console.warn = warn
|
||||
console.error = error
|
||||
|
||||
@@ -175,7 +175,7 @@ export class Transport {
|
||||
this.socket.onopen = () => {
|
||||
console.log('Connected to game server!');
|
||||
while (this.buffer.length > 0) {
|
||||
console.log('sending dropped message')
|
||||
console.localLog('sending dropped message')
|
||||
this.sendMsg(this.buffer.pop())
|
||||
}
|
||||
onconnect()
|
||||
@@ -184,13 +184,13 @@ export class Transport {
|
||||
onmessage(ServerMessageSchema.parse(JSON.parse(event.data)))
|
||||
};
|
||||
this.socket.onerror = (err) => {
|
||||
console.error('Socket encountered error: ', err, 'Closing socket');
|
||||
console.localError('Socket encountered error: ', err, 'Closing socket');
|
||||
this.socket.close();
|
||||
};
|
||||
this.socket.onclose = (event: CloseEvent) => {
|
||||
console.log(`WebSocket closed. Code: ${event.code}, Reason: ${event.reason}`);
|
||||
if (event.code != 1000) {
|
||||
console.log(`reconnecting`)
|
||||
console.localLog(`reconnecting`)
|
||||
this.connect(onconnect, onmessage)
|
||||
}
|
||||
};
|
||||
@@ -236,8 +236,8 @@ export class Transport {
|
||||
console.log('on stop: leaving game')
|
||||
this.socket.close()
|
||||
} else {
|
||||
console.log('WebSocket is not open. Current state:', this.socket.readyState);
|
||||
console.log('attempting reconnect')
|
||||
console.localLog('WebSocket is not open. Current state:', this.socket.readyState);
|
||||
console.localError('attempting reconnect')
|
||||
}
|
||||
this.socket.onclose = (event: CloseEvent) => { }
|
||||
}
|
||||
@@ -368,8 +368,8 @@ export class Transport {
|
||||
})
|
||||
this.sendMsg(JSON.stringify(msg))
|
||||
} else {
|
||||
console.log('WebSocket is not open. Current state:', this.socket.readyState);
|
||||
console.log('attempting reconnect')
|
||||
console.localLog('WebSocket is not open. Current state:', this.socket.readyState);
|
||||
console.localLog('attempting reconnect')
|
||||
}
|
||||
}
|
||||
|
||||
@@ -378,7 +378,7 @@ export class Transport {
|
||||
this.localServer.onMessage(msg)
|
||||
} else {
|
||||
if (this.socket.readyState == WebSocket.CLOSED || this.socket.readyState == WebSocket.CLOSED) {
|
||||
console.warn('socket not ready, closing and trying later')
|
||||
console.localWarn('socket not ready, closing and trying later')
|
||||
this.socket.close()
|
||||
this.socket = null
|
||||
this.connectRemote(this.onconnect, this.onmessage)
|
||||
|
||||
@@ -16,7 +16,7 @@ export const devConfig = new class extends DefaultConfig {
|
||||
return 95
|
||||
}
|
||||
numSpawnPhaseTurns(gameType: GameType): number {
|
||||
return 40
|
||||
return gameType == GameType.Singleplayer ? 40 : 100
|
||||
// return 100
|
||||
}
|
||||
gameCreationRate(): number {
|
||||
|
||||
Reference in New Issue
Block a user