Skip to content

Commit 571be0a

Browse files
author
Praseetha-KR
committed
Fixed 2 way web socket connection
1 parent 03a0f22 commit 571be0a

File tree

4 files changed

+29
-17
lines changed

4 files changed

+29
-17
lines changed

engage/routers.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from swampdragon import route_handler
22
from swampdragon.route_handler import ModelRouter
33
from swampdragon.permissions import LoginRequired
4-
from swampdragon.pusub_providers.data_publisher import publish_data
4+
from swampdragon.pubsub_providers.data_publisher import publish_data
55
from django.contrib.auth import get_user_model
66

77
from .serializers import UserMessageSerializer
@@ -13,7 +13,7 @@ class UserMessageRouter(ModelRouter):
1313
model = UserMessage
1414
route_name = 'user-message'
1515
permission_classes = [LoginRequired()]
16-
valid_verbs = ['subscribe']
16+
valid_verbs = ['subscribe', 'create', 'unsubscribe']
1717

1818
def get_subscription_channels(self, **kwargs):
1919
# ret = [('user-message-' + user.pk) for user in get_user_model().objects.all()]
@@ -33,9 +33,9 @@ def create(self, **kwargs):
3333
user=self.connection.user,
3434
direction='from'
3535
)
36-
publish_data('user-message-' + self.connection.user.pk, {
36+
publish_data('user-message-%s' % self.connection.user.pk, {
3737
'text': msg.text,
38-
'created_at': msg.created_at,
38+
'created_at': str(msg.created_at),
3939
'direction': 'from'
4040
})
4141
self.send('done')
@@ -63,14 +63,13 @@ def create(self, **kwargs):
6363
user=user,
6464
direction='to'
6565
)
66-
publish_data('user-message-' + user.pk, {
66+
publish_data('user-message-%s' % user.pk, {
6767
'text': msg.text,
68-
'created_at': msg.created_at,
68+
'created_at': str(msg.created_at),
6969
'direction': 'from'
7070
})
7171

7272
self.send('done')
7373

74-
print UserMessageRouter, AdminMessageRouter
7574
route_handler.register(UserMessageRouter)
7675
route_handler.register(AdminMessageRouter)

engage/serializers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
class UserMessageSerializer(ModelSerializer):
55
class Meta:
66
model = 'engage.UserMessage'
7-
publish_fields = ('text', 'created_at', 'direction')
7+
publish_fields = ('text', 'direction')
88
update_fields = ('text', )

engage/templates/chatboxadmin.html

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,16 @@
148148

149149
// });
150150

151+
swampdragon.onChannelMessage(function(channels, message) {
152+
if(channels[0] === ('user-message-' + getUser())){
153+
msgbox.push(
154+
message.data.text,
155+
'11: 30 PM',
156+
message.data.direction
157+
);
158+
}
159+
});
160+
151161
swampdragon.ready(function() {
152162
console.log('Started connection ' + new Date());
153163
});
@@ -157,6 +167,8 @@
157167
});
158168

159169
window.setUser = function(id, username) {
170+
swampdragon.unsubscribe('user-message', ('user-message-' + userid));
171+
swampdragon.subscribe('user-message', ('user-message-' + id));
160172
userid = id;
161173
if (userid){
162174
mbox.classList.remove('closed');
@@ -176,7 +188,6 @@
176188
window.enterHandler = function (e, input) {
177189
if (e.keyCode === 13 && input.value) {
178190
sendMessage(input.value);
179-
msgbox.push(input.value, new Date(), 'to');
180191
input.value = '';
181192
}
182193
};

engage/templates/chatboxclient.html

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,12 @@
4040
border-radius: 0.5em;
4141
border: 1px solid #efefef;
4242
}
43-
#django-engage .to {
43+
#django-engage .from {
4444
float: right;
4545
background: white;
4646
margin-left: 4em;
4747
}
48-
#django-engage .from {
48+
#django-engage .to {
4949
float: left;
5050
background: #eee;
5151
margin-right: 4em;
@@ -150,13 +150,16 @@
150150
mbox.classList.toggle('opened');
151151
});
152152

153-
// swampdragon.onChannelMessage(function(channels, message) {
154-
// console.log('channel ', channels, message);
155-
// });
153+
swampdragon.onChannelMessage(function(channels, message) {
154+
msgbox.push(
155+
message.data.text,
156+
'11: 30 PM',
157+
message.data.direction
158+
);
159+
});
156160
swampdragon.ready(function() {
157161
console.log('Started connection ' + new Date());
158-
//swampdragon.subscribe('usermessage','usermessage{{request.user.pk}}');
159-
162+
swampdragon.subscribe('user-message','user-message-{{request.user.pk}}');
160163
});
161164
swampdragon.open(function() {
162165
console.log('{{ request.user.username }} connected');
@@ -170,7 +173,6 @@
170173
window.enterHandler = function (e, input) {
171174
if (e.keyCode === 13 && input.value) {
172175
sendMessage(input.value);
173-
msgbox.push(input.value, new Date(), 'to');
174176
input.value = '';
175177
}
176178
};

0 commit comments

Comments
 (0)