1
22
23 package com.liferay.portal.liveusers.messaging;
24
25 import com.liferay.portal.kernel.json.JSONFactoryUtil;
26 import com.liferay.portal.kernel.json.JSONObject;
27 import com.liferay.portal.kernel.messaging.MessageListener;
28 import com.liferay.portal.liveusers.LiveUsers;
29
30 import org.apache.commons.logging.Log;
31 import org.apache.commons.logging.LogFactory;
32
33
39 public class LiveUsersMessageListener implements MessageListener {
40
41 public void receive(Object message) {
42 throw new UnsupportedOperationException();
43 }
44
45 public void receive(String message) {
46 try {
47 doReceive(message);
48 }
49 catch (Exception e) {
50 _log.error("Unable to process message " + message, e);
51 }
52 }
53
54 public void doReceive(String message) throws Exception {
55 JSONObject jsonObj = JSONFactoryUtil.createJSONObject(message);
56
57 String command = jsonObj.getString("command");
58
59 if (command.equals("signIn")) {
60 doCommandSignIn(jsonObj);
61 }
62 else if (command.equals("signOut")) {
63 doCommandSignOut(jsonObj);
64 }
65 }
66
67 protected void doCommandSignIn(JSONObject jsonObj) throws Exception {
68 long companyId = jsonObj.getLong("companyId");
69 long userId = jsonObj.getLong("userId");
70 String sessionId = jsonObj.getString("sessionId");
71 String remoteAddr = jsonObj.getString("remoteAddr");
72 String remoteHost = jsonObj.getString("remoteHost");
73 String userAgent = jsonObj.getString("userAgent");
74
75 LiveUsers.signIn(
76 companyId, userId, sessionId, remoteAddr, remoteHost, userAgent);
77 }
78
79 protected void doCommandSignOut(JSONObject jsonObj) throws Exception {
80 long companyId = jsonObj.getLong("companyId");
81 long userId = jsonObj.getLong("userId");
82 String sessionId = jsonObj.getString("sessionId");
83
84 LiveUsers.signOut(companyId, userId, sessionId);
85 }
86
87 private static Log _log = LogFactory.getLog(LiveUsersMessageListener.class);
88
89 }