| 168 | self.log.debug("Stopped.") |
| 169 | |
| 170 | def stop(self): |
| 171 | self.log.debug("Stopping...") |
| 172 | # Close WS sockets |
| 173 | if "clients" in dir(self.server): |
| 174 | for client in list(self.server.clients.values()): |
| 175 | client.ws.close() |
| 176 | # Close http sockets |
| 177 | sock_closed = 0 |
| 178 | for sock in list(self.server.sockets.values()): |
| 179 | try: |
| 180 | sock.send(b"bye") |
| 181 | sock.shutdown(socket.SHUT_RDWR) |
| 182 | # sock._sock.close() |
| 183 | # sock.close() |
| 184 | sock_closed += 1 |
| 185 | except Exception as err: |
| 186 | self.log.debug("Http connection close error: %s" % err) |
| 187 | self.log.debug("Socket closed: %s" % sock_closed) |
| 188 | time.sleep(0.1) |
| 189 | if config.debug: |
| 190 | from Debug import DebugReloader |
| 191 | DebugReloader.watcher.stop() |
| 192 | |
| 193 | self.server.socket.close() |
| 194 | self.server.stop() |
| 195 | self.running = False |
| 196 | time.sleep(1) |
| 197 | |
| 198 | def updateWebsocket(self, **kwargs): |
| 199 | for ws in self.websockets: |