次のコードを実行しているクロム拡張機能間の websocket 接続を確立しようとしています:
if('WebSocket' in window){
connect('ws://localhost:8181/chat');
}
function connect(host) {
var ws = new WebSocket(host);
ws.onopen = function () {
alert('connected');
};
ws.onmessage = function (evt) {
alert('reveived data:'+evt.data);
};
ws.onclose = function () {
alert('socket closed');
};
};
そしてJavaサーバー。
import java.io.*;
import java.net.*;
import java.util.logging.Level;
import java.util.logging.Logger;
public class ServerThread extends Thread {
Socket socket = null;
int NumberOfThread;
Main Mainthread;
public ServerThread(Socket socket) {
super("ServerThread");
this.socket = socket;
}
@Override
public void run(){
try {
while(true){
BufferedReader SS_BF = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String temp = SS_BF.readLine();
System.out.println(temp);
}
} catch (IOException ex) {
suicide();
}
}
public void suicide(){
try {
/*this.socket.shutdownInput();
this.socket.shutdownOutput();
this.socket.close();*/
Mainthread.Coroner(NumberOfThread);
} catch (IOException ex) {
Logger.getLogger(ServerThread.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void identify(int n, Main m)throws IOException{
NumberOfThread=n;
Mainthread=m;
}
public void Send(String s)throws IOException{
PrintStream SSPS = new PrintStream(socket.getOutputStream());
SSPS.println(s);
System.out.println ("Sent text to CLIENT_" + NumberOfThread);
}
}
だから私は接続を確立することができます、私はハンドシェイクまで取得しますが、その後は何もしません。クライアントはハングまたは切断しますが、onOpen イベントはトリガーされません。
十分な情報を提供できたことを願っています。デスクトップで実行されているGoogle Chrome拡張機能とJavaサーバーでクライアントからWebSocket接続を確立する方法を誰か教えてもらえますか?
前もって感謝します!スモレット。