Commit graph

30 commits

Author SHA1 Message Date
Tyson Clugg
4fc7f2179f Consistent handling of client side vs server side errors. 2016-01-08 17:38:41 +11:00
Tyson Clugg
89dd3649d7 Re-raise exceptions after sending error to client. 2015-12-21 21:04:44 +11:00
Tyson Clugg
b38a0447f6 Close DB and yield after processing msg from WebSocket. 2015-12-16 17:24:45 +11:00
Tyson Clugg
a330746432 Send django.core.signals.request_finished when closing WebSocket. 2015-11-23 11:09:59 +11:00
Tyson Clugg
27c270f40f Fixes #6 (again) -- Python 3 style exception handling. 2015-10-13 23:44:15 +11:00
Tyson Clugg
b80e50a6ac Improvements to error/exception handling. 2015-10-13 11:39:20 +11:00
Tyson Clugg
2aa21c7a27 Warn if many TX chunks are waiting (stalled?) 2015-10-13 11:36:05 +11:00
Tyson Clugg
91a1b4a3db Bugfix thread locals setup when opening WebSocket. 2015-10-13 11:18:24 +11:00
Tyson Clugg
0bbf5ac10c Add missing import for Python 2 print(). 2015-10-13 11:13:59 +11:00
Tyson Clugg
9a9e119c36 Fix error in logging call during exception handling. 2015-09-22 11:49:56 +10:00
Tyson Clugg
da70e10857 Include exception info in logger.error logging call. 2015-09-18 17:42:11 +10:00
Tyson Clugg
5ec27b669c Add BackdoorServer support to dddp command, add "Logs" publication. 2015-08-10 16:34:39 +10:00
Tyson Clugg
d762fa45c4 Updated error handling to ensure error reply to method messages when appropriate. 2015-07-22 10:33:21 +10:00
Tyson Clugg
e7b38b89db Stop running request middleware upon connection.
This change deserves a more thorough explanation.  All currently
released versions of Django are based around the concept of receiving a
request and immediately dispatching a response.

WebSocket connections don't follow this convention, and the `request` hangs
around for long periods of time.  As such, things like `request.user` don't
really make sense as a user may login, then logout, then login again all
within the life of a single request.

Given that the concepts applied in Django are based upon a premise that
doesn't hold true for WebSockets (that a request is short-lived), it
doesn't make sense to apply those concepts in django-ddp.
2015-07-21 21:24:14 +10:00
Tyson Clugg
f5f127e9ba Check order of added/changed when emitting WebSocket frames, don't try to emit removed when client doesn't have the item. 2015-05-27 14:28:30 +10:00
Tyson Clugg
fa51d89575 Fix order of added/changed messages by deferring id checking until emitting WebSocket frames. 2015-05-27 12:48:16 +10:00
Tyson Clugg
c7ecd60ea7 Refactor pub/sub functionality to fix support for removed. 2015-05-21 12:51:43 +10:00
Tyson Clugg
f1d031313f Bugfix issue where DDP connection thread stops sending messages after changing item that has subscribers for other connections but not self. 2015-05-20 15:05:05 +10:00
Tyson Clugg
0542e31f3d Fix added/changed messages. 2015-05-18 12:39:00 +10:00
Tyson Clugg
28a187a574 Correct ordering of outgoing messages for RPC calls that should return result after change messages. 2015-05-12 08:53:21 +10:00
Tyson Clugg
c95e2faf2a Refactored send_notify to add custom serialization support. 2015-05-06 19:40:54 +10:00
Tyson Clugg
1e99b0c396 Gracefully handle poorly registered instance methods that take no args (ie: missing self arg) 2015-04-29 19:51:40 +10:00
Tyson Clugg
1a91693d1f Drop session field from Connection model, move transaction wrapper from on_message to dispatch handler. 2015-04-29 19:40:30 +10:00
Tyson Clugg
abe6b12ece Allow fresh connections from browsers that have not established a
session in the database yet, also allow subscriptions from
unauthenticated sessions (but don\'t show any data for collections that
have user_rel items defined).
2015-04-27 22:26:39 +10:00
Tyson Clugg
b9a17b8f37 New DB field: Connection.server_addr, cleanup connections on shutdown. 2015-04-23 13:46:54 +10:00
Tyson Clugg
41c544dadb Fix generation of meteor ID's to match meteor client implementation. 2015-04-14 11:08:08 +10:00
Tyson Clugg
feaea9f0c1 Change validation so that we now pass the DDP test suite <http://ddptest.meteor.com/>. 2015-04-10 11:10:41 +10:00
Tyson Clugg
94a75dee8b Django DDP version 0.2.0 2015-04-08 16:14:22 +10:00
Tyson Clugg
29b9acf8e4 Use logging rather than print statements, find WSGI_APPLICATION rather than using donor project default. 2015-02-25 08:12:56 +11:00
Tyson Clugg
25a9fe6ef3 Refactor dddp management command, breaking out PostgresGreenlet and DDPWebSocketApplication. 2015-02-24 16:59:34 +11:00