diff --git a/channels/channel.py b/channels/channel.py index 4d2796b..a308e9e 100644 --- a/channels/channel.py +++ b/channels/channel.py @@ -38,7 +38,6 @@ class Channel(object): raise TypeError("You can only send dicts as content on channels.") self.channel_layer.send(self.name, content) message_sent.send(sender=self.__class__, channel=self.name, keys=list(content.keys())) - print("didsig", self.name) def __str__(self): return self.name diff --git a/channels/consumer_middleware.py b/channels/consumer_middleware.py index 869863e..34284dc 100644 --- a/channels/consumer_middleware.py +++ b/channels/consumer_middleware.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals import importlib import threading +import warnings from django.conf import settings from .exceptions import DenyConnection @@ -48,14 +49,18 @@ class ConvenienceMiddleware(object): self.consumer = consumer def __call__(self, message): - print("conven", message.channel) if message.channel.name == "websocket.connect": # Websocket connect acceptance helper try: self.consumer(message) - print ("messages sent", self.get_messages()) except DenyConnection: message.reply_channel.send({"accept": False}) + else: + replies_sent = [msg for chan, msg in self.get_messages() if chan == message.reply_channel.name] + # If they sent no replies, send implicit acceptance + if not replies_sent: + warnings.warn("AAAAAAAAAAA", RuntimeWarning) + message.reply_channel.send({"accept": True}) else: # General path return self.consumer(message) @@ -67,8 +72,8 @@ class ConvenienceMiddleware(object): """ cls.runtime_data.sent_messages = [] - consumer_started.connect(lambda **kwargs: reset_messages()) - consumer_finished.connect(lambda **kwargs: reset_messages()) + consumer_started.connect(lambda **kwargs: ConvenienceMiddleware.reset_messages(), weak=False) + consumer_finished.connect(lambda **kwargs: ConvenienceMiddleware.reset_messages(), weak=False) @classmethod def sent_message(cls, channel, keys, **kwargs): @@ -78,9 +83,8 @@ class ConvenienceMiddleware(object): all messages. """ cls.runtime_data.sent_messages = getattr(cls.runtime_data, "sent_messages", []) + [(channel, keys)] - print ("saved now", cls.runtime_data.sent_messages) - message_sent.connect(lambda channel, keys, **kwargs: sent_message(channel, keys)) + message_sent.connect(lambda channel, keys, **kwargs: ConvenienceMiddleware.sent_message(channel, keys), weak=False) @classmethod def get_messages(cls):