Support reconnect to language server when server port changed

This commit is contained in:
geequlim
2020-01-12 00:00:17 +08:00
parent 119a7ebd23
commit 8d8f5c2d9b
2 changed files with 3 additions and 5 deletions

View File

@@ -82,7 +82,7 @@ export default class GDScriptLanguageClient extends LanguageClient {
connect_to_server() {
this.status = ClientStatus.PENDING;
io.connect_to_language_server();
io.connect_to_language_server(get_server_uri());
}
start(): vscode.Disposable {

View File

@@ -12,11 +12,9 @@ export class MessageIO extends EventEmitter {
writer: MessageIOWriter = null;
private socket: WebSocket = null;
private url: string = "";
constructor(url: string) {
super();
this.url = url;
}
public send_message(message: string) {
@@ -39,10 +37,10 @@ export class MessageIO extends EventEmitter {
this.emit("message", message);
}
connect_to_language_server():Promise<void> {
connect_to_language_server(url: string):Promise<void> {
return new Promise((resolve, reject) => {
this.socket = null;
const ws = new WebSocket(this.url);
const ws = new WebSocket(url);
ws.on('open', ()=>{ this.on_connected(ws); resolve(); });
ws.on('message', this.on_message.bind(this));
ws.on('error', this.on_disconnected.bind(this));