@@ -2,7 +2,7 @@ package org.codeoverflow.chatoverflow.requirement.service.tipeeestream
22
33import java .util .Calendar
44
5- import io .socket .client .Socket
5+ import io .socket .client .{ IO , Socket }
66import org .codeoverflow .chatoverflow .WithLogger
77import org .codeoverflow .chatoverflow .connector .Connector
88import org .json .JSONObject
@@ -14,6 +14,7 @@ import org.json.JSONObject
1414 */
1515class 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