Skip to content
This repository was archived by the owner on Aug 18, 2020. It is now read-only.

Commit 75e1cc2

Browse files
committed
Connect tor tipeeestream socket.io - srsly??? *facepalm*
1 parent 5dddb24 commit 75e1cc2

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

src/main/scala/org/codeoverflow/chatoverflow/requirement/service/tipeeestream/TipeeestreamConnector.scala

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package org.codeoverflow.chatoverflow.requirement.service.tipeeestream
22

33
import java.util.Calendar
44

5-
import io.socket.client.Socket
5+
import io.socket.client.{IO, Socket}
66
import org.codeoverflow.chatoverflow.WithLogger
77
import org.codeoverflow.chatoverflow.connector.Connector
88
import org.json.JSONObject
@@ -14,6 +14,7 @@ import org.json.JSONObject
1414
*/
1515
class TipeeestreamConnector(override val sourceIdentifier: String) extends Connector(sourceIdentifier) with WithLogger {
1616
private val TIMEOUT = 10000
17+
private val SOCKET_URL = "https://sso-cf.tipeeestream.com"
1718
private val tipeeeStreamListener = new TipeeestreamListener
1819
override protected var requiredCredentialKeys: List[String] = List("apiKey", "username")
1920
override protected var optionalCredentialKeys: List[String] = List()
@@ -30,8 +31,9 @@ class TipeeestreamConnector(override val sourceIdentifier: String) extends Conne
3031
* @return if the socket could start successfully
3132
*/
3233
private def startSocket(): Boolean = {
33-
var connected: Option[Boolean] = None
34+
@volatile var connected: Option[Boolean] = None
3435
val thread = Thread.currentThread
36+
socket = Some(IO.socket(SOCKET_URL).connect())
3537
socket.get.on(Socket.EVENT_CONNECT, (_: Any) => {
3638
logger info "Connected to TipeeStream Socket.io"
3739
socket.get.emit("join-room", AUTH_OBJECT)
@@ -40,13 +42,14 @@ class TipeeestreamConnector(override val sourceIdentifier: String) extends Conne
4042
tipeeeStreamListener.onSocketEvent(objects)
4143
})
4244
connected = Some(true)
43-
connected.notifyAll()
4445
})
4546
socket.get.on(Socket.EVENT_CONNECT_ERROR, (e: Any) => {
4647
logger warn s"Could not connect to TipeeeStream socket:"
47-
logger warn e.asInstanceOf[Array[Object]].mkString(",")
48+
e match {
49+
case array: Array[Any] => logger warn array.mkString(", ")
50+
case other => logger warn other.toString
51+
}
4852
connected = Some(false)
49-
connected.notifyAll()
5053
})
5154
socket.get.on(Socket.EVENT_CONNECT_TIMEOUT, (_: Any) => {
5255
logger warn s"$sourceIdentifier socket timed out"
@@ -59,7 +62,11 @@ class TipeeestreamConnector(override val sourceIdentifier: String) extends Conne
5962
}
6063
})
6164
val start = Calendar.getInstance.getTimeInMillis
62-
while (connected.isEmpty && start + TIMEOUT > Calendar.getInstance.getTimeInMillis) connected.wait(TIMEOUT)
65+
try {
66+
while (connected.isEmpty && start + TIMEOUT > Calendar.getInstance.getTimeInMillis) Thread.sleep(100)
67+
} catch {
68+
case _: InterruptedException => //Just resume
69+
}
6370
connected.getOrElse({
6471
logger warn "Could not connect to TipeeeStream socket: Timed out!"
6572
false

0 commit comments

Comments
 (0)