Skip to content

Instantly share code, notes, and snippets.

@SeyitOzanOzdil
Last active August 29, 2015 14:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SeyitOzanOzdil/0329ba2c9ebc9faa090e to your computer and use it in GitHub Desktop.
Save SeyitOzanOzdil/0329ba2c9ebc9faa090e to your computer and use it in GitHub Desktop.
class SocCon(SocketConnection):
pool = redis.ConnectionPool(host='ip for redis server', port=6379, db=0)
redis = redis.Redis(connection_pool=pool)
unique_cls = 0
user = {}
val = 0
@classmethod
def get_user(cls):
cls.unique_cls += 1
user = "User%s" % cls.unique_cls
return user
def on_open(self, request):
self.val = self.validation(request.get_argument("token"))
if self.val:
self.client = brukva.Client(host='ip for redis server', port=6379, db=0))
self.client.connect()
self.client.subscribe("main_channel")
self.client.listen(self.on_chan)
self.user[self] = self.get_user()
user = self.user[self]
self.user[user] = self
else:
return
def on_close(self):
self.client.unsubscribe('main_channel')
for room in self.redis.smembers("rooms"):
self.client.unsubscribe(room)
for user in self.redis.smembers(room):
if(self.user[user] == self):
self.redis.srem(room, user)
tmp = self.user[self]
del self.user[self]
del self.user[tmp]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment