57 lines
2.0 KiB
Plaintext
57 lines
2.0 KiB
Plaintext
<!-- you need this javascript -->
|
|
<%= javascript_include_tag "jamServer" %>
|
|
<!-- gon is required -->
|
|
<%= include_gon %>
|
|
<!-- you need these templates -->
|
|
<%= render "clients/banner" %>
|
|
<%= render "clients/banners/disconnected" %>
|
|
<%= render "clients/jamServer" %>
|
|
|
|
<!-- you need these stylesheets -->
|
|
<%= stylesheet_link_tag "client/banner", media: "all" %>
|
|
<%= stylesheet_link_tag "client/jamServer", media: "all" %>
|
|
|
|
<script type="text/javascript">
|
|
|
|
// you can probably do nothing with this in your own code
|
|
function signalActiveElement(event_type) {
|
|
// event can be one of:
|
|
// * beforeDisconnect
|
|
// * afterDisconnect
|
|
// * afterConnect
|
|
// the purpose of this method is to signal to the active element in the UI that websocket state changed
|
|
// and in beforeDisconnect in particular, you can return a 'vote' that let's you affect how a reconnect is handled
|
|
// you can safely return null, though
|
|
|
|
console.log("websocket event:" + event_type);
|
|
|
|
if(event_type == 'beforeDisconnect') {
|
|
return null; // causes a in-place websocket reconnect (as opposed to a full page refresh when connection re-established)
|
|
}
|
|
// no other event cares about return
|
|
}
|
|
|
|
$(function() {
|
|
|
|
JK = JK || {};
|
|
|
|
JK.app = JK.JamKazam();
|
|
var jamServer = new JK.JamServer(JK.app, signalActiveElement);
|
|
jamServer.initialize();
|
|
|
|
// now you can register for messages somewhere in your code safely... (not necessarily inline here--just somewhere)
|
|
// i.e., you can call: context.JK.JamServer.registerMessageCallback
|
|
|
|
// JamServer.connect needs the jamClient to be initialized
|
|
JK.initJamClient();
|
|
|
|
JK.JamServer.connect() // singleton here defined in JamServer.js
|
|
.done(function() {
|
|
console.log("websocket connected") // this is used in /client to signal hide of curtain, and initializing the bulk of logic. maybe not useful...
|
|
})
|
|
.fail(function() {
|
|
console.log("websocket failed to connect") // this is used in /client
|
|
});
|
|
|
|
})
|
|
</script> |