def set(self, host, port):
        self._host = host
        self._port = port

        self._server = SublimeWSServer()
class SublimeSocketThread(threading.Thread):
    def __init__(self, host, port):
        threading.Thread.__init__(self)
        self.set(host, port)

    # call through thread-initialize
    def run(self):
        result = self._server.start(self._host, self._port)

        if result is 0:
            pass
        else:
            self.tearDownServer()

    def set(self, host, port):
        self._host = host
        self._port = port

        self._server = SublimeWSServer()

    # send eventName and data to server
    def toServer(self, eventName, view=None):
        if self._server is None:
            pass
        else:

            # avoid empty-file
            if view.is_scratch():
                # print "scratch buffer."
                return

            elif not view.file_name():
                # print "no path"
                return

            view_file_name = view.file_name()

            eventParam = {
                SublimeSocketAPISettings.REACTOR_VIEWKEY_VIEWSELF:
                view,
                SublimeSocketAPISettings.REACTOR_VIEWKEY_ID:
                view.id(),
                SublimeSocketAPISettings.REACTOR_VIEWKEY_BUFFERID:
                view.buffer_id(),
                SublimeSocketAPISettings.REACTOR_VIEWKEY_PATH:
                view_file_name,
                SublimeSocketAPISettings.REACTOR_VIEWKEY_BASENAME:
                os.path.basename(view_file_name),
                SublimeSocketAPISettings.REACTOR_VIEWKEY_VNAME:
                view.name()
            }

            self._server.fireKVStoredItem(eventName, eventParam)

    def currentConnections(self):
        self._server.showCurrentStatusAndConnections()

    def tearDownServer(self):
        self._server.tearDown()
        self._server = None

    def isServerAlive(self):
        if not self._server:
            return False
        return True