2020-05-26 07:45:40 +00:00
|
|
|
import { EventEmitter } from 'events'
|
2020-06-30 06:02:18 +00:00
|
|
|
import { SocketIO } from '../socket-io/interfaces'
|
2020-05-26 07:45:40 +00:00
|
|
|
|
|
|
|
export class TomcatClient extends EventEmitter implements SocketIO.EngineSocket {
|
2020-06-30 06:02:18 +00:00
|
|
|
private _id: string
|
|
|
|
private session: javax.websocket.Session
|
2020-05-26 07:45:40 +00:00
|
|
|
|
2020-06-30 06:02:18 +00:00
|
|
|
server: any
|
|
|
|
readyState: string
|
|
|
|
remoteAddress: string
|
|
|
|
upgraded: boolean
|
|
|
|
request: any
|
|
|
|
transport: any
|
2020-05-26 07:45:40 +00:00
|
|
|
|
2020-06-30 06:02:18 +00:00
|
|
|
constructor(server: any, session: javax.websocket.Session) {
|
|
|
|
super()
|
|
|
|
this.server = server
|
|
|
|
this.readyState = 'open'
|
2020-05-26 07:45:40 +00:00
|
|
|
this.remoteAddress = session + ''
|
2020-06-30 06:02:18 +00:00
|
|
|
this.upgraded = true
|
2020-05-26 07:45:40 +00:00
|
|
|
this.request = {
|
2020-06-30 06:02:18 +00:00
|
|
|
uri: () => `${session.getRequestURI()}`,
|
|
|
|
headers: () => []
|
|
|
|
}
|
|
|
|
this.transport = null
|
2020-05-26 07:45:40 +00:00
|
|
|
|
2020-06-30 06:02:18 +00:00
|
|
|
this.session = session
|
2020-11-13 01:40:47 +00:00
|
|
|
this._id = session.getId() + ''
|
2020-05-26 07:45:40 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
get id() {
|
2020-06-30 06:02:18 +00:00
|
|
|
return this._id
|
2020-05-26 07:45:40 +00:00
|
|
|
}
|
|
|
|
send(text: string) {
|
2020-06-30 06:02:18 +00:00
|
|
|
if (this.readyState == 'open') {
|
|
|
|
Java.synchronized(() => this.session.getBasicRemote().sendText(text), this.session)()
|
|
|
|
}
|
2020-05-26 07:45:40 +00:00
|
|
|
}
|
|
|
|
close() {
|
2020-06-30 06:02:18 +00:00
|
|
|
if (this.readyState == 'open') {
|
|
|
|
this.readyState = 'close'
|
|
|
|
this.session.close()
|
|
|
|
}
|
2020-05-26 07:45:40 +00:00
|
|
|
}
|
|
|
|
}
|