Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
ARSnova Backend
Manage
Activity
Members
Labels
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Operate
Environments
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Help
Help
Support
GitLab documentation
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Privacy
Imprint
Contact
Snippets
Groups
Projects
Show more breadcrumbs
Paul-Christian Volkmer
ARSnova Backend
Commits
92ede846
Commit
92ede846
authored
12 years ago
by
Daniel Knapp
Browse files
Options
Downloads
Plain Diff
Merge branch 'master' of scm.thm.de:arsnova/arsnova-war
parents
30c490ec
391e8b23
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java
+34
-44
34 additions, 44 deletions
...ain/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java
with
34 additions
and
44 deletions
src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java
+
34
−
44
View file @
92ede846
...
...
@@ -73,54 +73,44 @@ public class ARSnovaSocketIOServer {
}
server
=
new
SocketIOServer
(
config
);
server
.
addEventListener
(
"setFeedback"
,
Feedback
.
class
,
new
DataListener
<
Feedback
>()
{
@Override
public
void
onData
(
SocketIOClient
client
,
Feedback
data
,
AckRequest
ackSender
)
{
/**
* do a check if user is in the session, for which he
* would give a feedback
*/
User
u
=
userService
.
getUser2SocketId
(
client
.
getSessionId
());
if
(
u
==
null
||
userService
.
isUserInSession
(
u
,
data
.
getSessionkey
())
==
false
)
{
return
;
}
feedbackService
.
saveFeedback
(
data
.
getSessionkey
(),
data
.
getValue
(),
u
);
/**
* send feedback back to clients
*/
reportUpdatedFeedbackForSession
(
data
.
getSessionkey
());
}
});
server
.
addEventListener
(
"arsnova/question/create"
,
Question
.
class
,
new
DataListener
<
Question
>()
{
@Override
public
void
onData
(
SocketIOClient
client
,
Question
question
,
AckRequest
ackSender
)
{
questionService
.
saveQuestion
(
question
);
}
});
server
.
addEventListener
(
"setFeedback"
,
Feedback
.
class
,
new
DataListener
<
Feedback
>()
{
@Override
public
void
onData
(
SocketIOClient
client
,
Feedback
data
,
AckRequest
ackSender
)
{
/**
* do a check if user is in the session, for which he would give
* a feedback
*/
User
u
=
userService
.
getUser2SocketId
(
client
.
getSessionId
());
if
(
u
==
null
||
userService
.
isUserInSession
(
u
,
data
.
getSessionkey
())
==
false
)
{
return
;
}
feedbackService
.
saveFeedback
(
data
.
getSessionkey
(),
data
.
getValue
(),
u
);
/**
* send feedback back to clients
*/
reportUpdatedFeedbackForSession
(
data
.
getSessionkey
());
}
});
server
.
addEventListener
(
"arsnova/question/create"
,
Question
.
class
,
new
DataListener
<
Question
>()
{
@Override
public
void
onData
(
SocketIOClient
client
,
Question
question
,
AckRequest
ackSender
)
{
questionService
.
saveQuestion
(
question
);
}
});
server
.
addConnectListener
(
new
ConnectListener
()
{
@Override
public
void
onConnect
(
SocketIOClient
client
)
{
logger
.
info
(
"addConnectListener.onConnect: Client: {}"
,
new
Object
[]
{
client
});
logger
.
info
(
"addConnectListener.onConnect: Client: {}"
,
new
Object
[]
{
client
});
}
});
server
.
addDisconnectListener
(
new
DisconnectListener
()
{
@Override
public
void
onDisconnect
(
SocketIOClient
client
)
{
logger
.
info
(
"addDisconnectListener.onDisconnect: Client: {}"
,
new
Object
[]
{
client
});
logger
.
info
(
"addDisconnectListener.onDisconnect: Client: {}"
,
new
Object
[]
{
client
});
userService
.
removeUser2SocketId
(
client
.
getSessionId
());
}
});
...
...
@@ -208,9 +198,9 @@ public class ARSnovaSocketIOServer {
public
void
reportUpdatedFeedbackForSession
(
String
session
)
{
/**
* collect a list of users which are in the current
*
session iterate over
all connected clients and if
*
send feedback, if user is in current
session
* collect a list of users which are in the current
session iterate over
* all connected clients and if
send feedback, if user is in current
* session
*/
List
<
String
>
users
=
userService
.
getUsersInSession
(
session
);
de
.
thm
.
arsnova
.
entities
.
Feedback
fb
=
feedbackService
.
getFeedback
(
session
);
...
...
@@ -218,10 +208,10 @@ public class ARSnovaSocketIOServer {
for
(
SocketIOClient
c
:
server
.
getAllClients
())
{
User
u
=
userService
.
getUser2SocketId
(
c
.
getSessionId
());
if
(
u
!=
null
&&
users
.
contains
(
u
.
getUsername
()))
{
logger
.
info
(
"sending out to client {}, username is: {}, current session is: {}"
,
new
Object
[]
{
c
.
getSessionId
(),
u
.
getUsername
(),
session
});
logger
.
info
(
"sending out to client {}, username is: {}, current session is: {}"
,
new
Object
[]
{
c
.
getSessionId
(),
u
.
getUsername
(),
session
});
c
.
sendEvent
(
"updateFeedback"
,
fb
.
getValues
());
}
}
}
}
\ No newline at end of file
}
This diff is collapsed.
Click to expand it.
Preview
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment