aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/juick/jabber/ws/Main.java10
-rw-r--r--src/main/java/com/juick/jabber/ws/WSData.java20
-rw-r--r--src/main/java/com/juick/jabber/ws/WSKeepAlive.java9
-rw-r--r--src/main/java/com/juick/jabber/ws/XMPPConnection.java13
4 files changed, 32 insertions, 20 deletions
diff --git a/src/main/java/com/juick/jabber/ws/Main.java b/src/main/java/com/juick/jabber/ws/Main.java
index 3a26c3ad..6f5ed96a 100644
--- a/src/main/java/com/juick/jabber/ws/Main.java
+++ b/src/main/java/com/juick/jabber/ws/Main.java
@@ -21,10 +21,11 @@ import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import java.io.FileInputStream;
-import java.sql.DriverManager;
-import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Properties;
+import java.util.logging.Level;
+import java.util.logging.LogManager;
+import java.util.logging.Logger;
/**
*
@@ -32,6 +33,8 @@ import java.util.Properties;
*/
public class Main {
+ private static final Logger logger = Logger.getLogger("Websockets");
+
JdbcTemplate sql;
XMPPConnection xmpp;
public static String STATSFILE = null;
@@ -43,6 +46,7 @@ public class Main {
public void start() {
try {
+ LogManager.getLogManager().readConfiguration(new FileInputStream("/etc/juick/ws_logging.properties"));
Properties conf = new Properties();
conf.load(new FileInputStream("/etc/juick/ws.conf"));
@@ -56,7 +60,7 @@ public class Main {
new Thread(new WSData(sql)).start();
new Thread(new WSKeepAlive(sql)).start();
} catch (Exception e) {
- System.err.println(e);
+ logger.log(Level.SEVERE, "websockets initialization error", e);
}
}
diff --git a/src/main/java/com/juick/jabber/ws/WSData.java b/src/main/java/com/juick/jabber/ws/WSData.java
index 3abc63d8..9ae98bcf 100644
--- a/src/main/java/com/juick/jabber/ws/WSData.java
+++ b/src/main/java/com/juick/jabber/ws/WSData.java
@@ -17,13 +17,16 @@ import java.nio.charset.Charset;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Iterator;
+import java.util.logging.Level;
+import java.util.logging.Logger;
/**
*
* @author ugnich
*/
public class WSData implements Runnable {
-
+
+ private static final Logger logger = Logger.getLogger("Websockets");
static final String WEBSOCKET_GUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
JdbcTemplate sql;
public Selector sel;
@@ -53,7 +56,7 @@ public class WSData implements Runnable {
SocketChannel sChannel = ssChannel.accept();
sChannel.configureBlocking(false);
sChannel.register(sel, SelectionKey.OP_READ);
- System.out.println(sChannel.socket().getRemoteSocketAddress().toString() + " ACCEPTED");
+ logger.info(sChannel.socket().getRemoteSocketAddress().toString() + " ACCEPTED");
} else if (selKey.isReadable()) {
SocketChannel sChannel = (SocketChannel) selKey.channel();
ByteBuffer buf = ByteBuffer.allocate(10240);
@@ -63,7 +66,6 @@ public class WSData implements Runnable {
buf.flip();
CharBuffer charbuf = Charset.forName("ISO-8859-1").decode(buf);
- System.out.println("DATA: " + charbuf.toString());
buf.rewind();
switch (buf.get(0)) {
@@ -89,7 +91,7 @@ public class WSData implements Runnable {
throw new IOException(sChannel.socket().getRemoteSocketAddress().toString() + " END OF STREAM");
}
} catch (IOException e) {
- System.err.println("WSData: " + e);
+ logger.log(Level.SEVERE, "websocket exception", e);
sChannel.socket().close();
sChannel.close();
selKey.cancel();
@@ -98,7 +100,7 @@ public class WSData implements Runnable {
}
}
} catch (Exception e) {
- System.err.println("WSData: " + e);
+ logger.log(Level.SEVERE, "websocket exception", e);
}
}
@@ -224,7 +226,7 @@ public class WSData implements Runnable {
sock.write(out);
if (responseCode == 101) {
- System.out.println(sock.socket().getRemoteSocketAddress().toString() + " HANDSHAKE (VUID = " + VUID + "; MID = " + MID + ")");
+ logger.info(sock.socket().getRemoteSocketAddress().toString() + " HANDSHAKE (VUID = " + VUID + "; MID = " + MID + ")");
} else {
throw new IOException(sock.socket().getRemoteSocketAddress().toString() + " " + responseCode);
}
@@ -236,7 +238,7 @@ public class WSData implements Runnable {
MessageDigest md = MessageDigest.getInstance("SHA-1");
return Base64.encode(md.digest(base.getBytes()));
} catch (NoSuchAlgorithmException e) {
- System.err.println("calcHeaderAccept: " + e);
+ logger.severe("calcHeaderAccept: " + e);
}
return "";
}
@@ -264,9 +266,7 @@ public class WSData implements Runnable {
public void updateSocketTS(SocketChannel sock) {
synchronized (Main.clients) {
- Iterator<SocketSubscribed> i = Main.clients.iterator();
- while (i.hasNext()) {
- SocketSubscribed s = i.next();
+ for (SocketSubscribed s : Main.clients) {
if (s.sock == sock) {
s.tsLastData = System.currentTimeMillis();
break;
diff --git a/src/main/java/com/juick/jabber/ws/WSKeepAlive.java b/src/main/java/com/juick/jabber/ws/WSKeepAlive.java
index f253439d..6244013d 100644
--- a/src/main/java/com/juick/jabber/ws/WSKeepAlive.java
+++ b/src/main/java/com/juick/jabber/ws/WSKeepAlive.java
@@ -5,12 +5,15 @@ import org.springframework.jdbc.core.JdbcTemplate;
import java.io.PrintWriter;
import java.nio.ByteBuffer;
import java.util.Iterator;
+import java.util.logging.Level;
+import java.util.logging.Logger;
/**
*
* @author ugnich
*/
public class WSKeepAlive implements Runnable {
+ private static final Logger logger = Logger.getLogger(WSKeepAlive.class.getName());
JdbcTemplate sql;
ByteBuffer pingBytes;
@@ -44,7 +47,7 @@ public class WSKeepAlive implements Runnable {
statsFile = new PrintWriter(Main.STATSFILE, "UTF-8");
} catch (Exception e) {
statsFile = null;
- System.err.println("WSKeepAlive statsFile: " + e);
+ logger.severe("WSKeepAlive statsFile: " + e);
}
}
@@ -69,7 +72,7 @@ public class WSKeepAlive implements Runnable {
statsFile.print("<td>" + (s.allMessages ? "+" : "") + "</td>");
statsFile.print("<td>" + (s.allReplies ? "+" : "") + "</td></tr>");
} catch (Exception e) {
- System.err.println("WSKeepAlive statsFile print: " + e);
+ logger.log(Level.SEVERE, "WSKeepAlive statsFile print", e);
}
}
@@ -90,7 +93,7 @@ public class WSKeepAlive implements Runnable {
statsFile.write("</table></body></html>");
statsFile.close();
} catch (Exception e) {
- System.err.println("WSKeepAlive statsFile close: " + e);
+ logger.log(Level.SEVERE, "WSKeepAlive statsFile close", e);
}
}
diff --git a/src/main/java/com/juick/jabber/ws/XMPPConnection.java b/src/main/java/com/juick/jabber/ws/XMPPConnection.java
index 1679ae8f..8c187a36 100644
--- a/src/main/java/com/juick/jabber/ws/XMPPConnection.java
+++ b/src/main/java/com/juick/jabber/ws/XMPPConnection.java
@@ -17,6 +17,8 @@ import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.util.Iterator;
import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import java.util.stream.Collectors;
/**
@@ -24,14 +26,17 @@ import java.util.stream.Collectors;
* @author ugnich
*/
public class XMPPConnection implements Runnable, Stream.StreamListener, Message.MessageListener {
+ private static final Logger logger = Logger.getLogger(XMPPConnection.class.getName());
JdbcTemplate sql;
Stream xmpp;
String xmppPassword;
+ MessageSerializer ms;
public XMPPConnection(JdbcTemplate sql, String password) {
this.sql = sql;
xmppPassword = password;
+ ms = new MessageSerializer();
}
@Override
@@ -44,25 +49,25 @@ public class XMPPConnection implements Runnable, Stream.StreamListener, Message.
xmpp.addListener((Message.MessageListener) this);
xmpp.startParsing();
} catch (IOException e) {
- System.err.println("XMPPConnection: " + e);
+ logger.log(Level.SEVERE, "XMPPConnection error", e);
}
}
@Override
public void onStreamReady() {
- System.err.println("Stream ready");
+ logger.info("XMPP stream ready");
}
@Override
public void onStreamFail(String msg) {
- System.err.println("Stream failed: " + msg);
+ logger.severe("XMPP stream failed: " + msg);
}
@Override
public void onMessage(com.juick.xmpp.Message msg) {
JuickMessage jmsg = (JuickMessage) msg.getChild(JuickMessage.XMLNS);
if (jmsg != null) {
- System.err.println("MID=" + jmsg.getMID() + "; RID=" + jmsg.getRID());
+ logger.info("got jmsg: " + ms.serialize(jmsg).toString());
if (jmsg.getMID() == 0) {
int uid_to = 0;
try {