52 lines
1.7 KiB
JavaScript
52 lines
1.7 KiB
JavaScript
/*
|
|
Message builder for communicating over the websocket
|
|
*/
|
|
(function() {
|
|
|
|
CLIENT_TARGET = "client"
|
|
SERVER_TARGET = "server"
|
|
SESSION_TARGET_PREFIX = "session:"
|
|
USER_TARGET_PREFIX = "user:"
|
|
|
|
LOGIN = "LOGIN"
|
|
LOGIN_ACK = "LOGIN_ACK"
|
|
LOGIN_MUSIC_SESSION = "LOGIN_MUSIC_SESSION"
|
|
LOGIN_MUSIC_SESSION_ACK = "LOGIN_MUSIC_SESSION_ACK"
|
|
USER_JOINED_MUSIC_SESSION = "USER_JOINED_MUSIC_SESSION"
|
|
LEAVE_MUSIC_SESSION = "LEAVE_MUSIC_SESSION"
|
|
LEAVE_MUSIC_SESSION_ACK = "LEAVE_MUSIC_SESSION_ACK"
|
|
HEARTBEAT = "HEARTBEAT"
|
|
|
|
TEST_SESSION_MESSAGE = "TEST_SESSION_MESSAGE"
|
|
SERVER_GENERIC_ERROR = "SERVER_GENERIC_ERROR"
|
|
SERVER_REJECTION_ERROR = "SERVER_REJECTION_ERROR"
|
|
|
|
var message_factory = {}
|
|
|
|
function client_container(type, target, inner) {
|
|
var type_field = type.toLowerCase()
|
|
var body = { "type" : type, "target" : target}
|
|
body[type_field] = inner
|
|
return body
|
|
}
|
|
|
|
// create a login message using user/pass
|
|
message_factory.login_with_user_pass = function(username, password) {
|
|
login = { username : username , password : password}
|
|
return client_container(LOGIN, SERVER_TARGET, login)
|
|
}
|
|
|
|
// create a login message using token (a cookie or similiar)
|
|
message_factory.login_with_token = function(token) {
|
|
login = { token : token}
|
|
return client_container(LOGIN, SERVER_TARGET, login)
|
|
}
|
|
|
|
// create a music session login message
|
|
message_factory.login_music_session = function(music_session) {
|
|
login_music_session = { music_session : music_session }
|
|
return client_container(LOGIN_MUSIC_SESSION, SERVER_TARGET, login_music_session)
|
|
}
|
|
|
|
window.message_factory = message_factory
|
|
})(); |