掲示板

Online/Offline status for Liferay user

14年前 に lalit mohan によって更新されました。

Online/Offline status for Liferay user

Junior Member 投稿: 55 参加年月日: 10/02/02 最新の投稿
How can i get the the online/offline status of a user.

Please reply.
14年前 に lalit mohan によって更新されました。

RE: Online/Offline status for Liferay user

Junior Member 投稿: 55 参加年月日: 10/02/02 最新の投稿
I am creating a portlet in which i have to show users with their online/offline status. How can i get the online/offline status using Liferay code.
thumbnail
14年前 に Mauro Mariuzzo によって更新されました。

RE: Online/Offline status for Liferay user

Regular Member 投稿: 142 参加年月日: 07/07/23 最新の投稿
Liferay has two different mechanism to store online/offline status.

One is called "Live User" and reflect login status. Is controlled by the properties "live.users.enabled" and "session.tracker.memory.enabled".

Here a sample code to check user on-line status. You have to write it into ext because LiveUsers isn't visible from a portlet.


	public boolean isUserLoggedIn(long companyId, long userId) {

		if (PropsValues.SESSION_TRACKER_MEMORY_ENABLED) {

			Iterator itr = LiveUsers.getSessionUsers(companyId).entrySet().iterator();

			while (itr.hasNext()) {
				Map.Entry entry = (Map.Entry)itr.next();

				UserTracker userTracker = (UserTracker)entry.getValue();

				if (userTracker.getUserId() == userId)
					return true;
			}
		}

		return false;
	}



The second one is "Chat". Only logged user are able to chat. An offline status means "I'm busy".
There isn't an easy way to obtain chat status from "chat" because you have to call a portlet service from another portlet
13年前 に Rafael Bautista によって更新されました。

RE: Online/Offline status for Liferay user

New Member 投稿: 6 参加年月日: 11/02/01 最新の投稿
mauro, i have tried your code, but it didn't work. i have already enabled live.users.enabled, and the other one in portal-ext.properties. getSessionUsers always returns null
thumbnail
12年前 に Vikas R Khengare によって更新されました。

RE: Online/Offline status for Liferay user

Junior Member 投稿: 58 参加年月日: 08/08/01 最新の投稿
Hi,

I think we should put "chat-portlet-service.jar" jar file in tomcat's /lib/ext/ folder and try.
Be sure that we should remove "chat-portlet-service.jar" from /chat-portlet/WEB-INF/lib folder.

From your Plugin SDK portlet's JSP just out following code, it will give you status of current user. You can try with other user id (your friend's user id) to know the status of your friend.

<%
Status status = StatusLocalServiceUtil.getUserStatus(themeDisplay.getUserId());
boolean online = status.getOnline();
String statusMessage = HtmlUtil.escape(status.getMessage());
if(online)
	System.out.println("User name : "+user.getScreenName() +" is Online and Status Message :"+statusMessage);
else
	System.out.println("User name : "+user.getScreenName() +" is Offline and Status Message :"+statusMessage);
%>
11年前 に Yannick Weinz によって更新されました。

RE: Online/Offline status for Liferay user

Junior Member 投稿: 69 参加年月日: 10/11/15 最新の投稿
I'm currently also trying to find out if a user is online or not.

Unfortunately the "StatusLocalServiceUtil" always says that the User is online, although he's not.
thumbnail
11年前 に ramveer singh narwariya によって更新されました。

RE: Online/Offline status for Liferay user

Junior Member 投稿: 64 参加年月日: 12/04/13 最新の投稿
HI lalit,
please post code related to this issue if you got your solution.