blob: f5f33066bb857fa7af3ea26934f79993b1c99a6d [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
-->
<ui:composition template="/main.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:tc="http://myfaces.apache.org/tobago/component"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<p>Simple example for WebSockets.</p>
<tc:section label="Example">
<p><tc:badge value="Warning" markup="warning"/> CSP script-src: 'unsafe-inline' is needed.</p>
<tc:script file="#{request.contextPath}/content/30-concept/18-websocket/WebSocket.js"/>
<f:websocket channel="clock" onmessage="websocketListener"/>
<tc:buttons>
<tc:button label="Start Clock" action="#{webSocketController.startClock}">
<f:ajax/>
</tc:button>
<tc:button label="Stop Clock" action="#{webSocketController.stopClock}">
<f:ajax/>
</tc:button>
</tc:buttons>
<tc:separator/>
<div id="clockId"></div>
</tc:section>
</ui:composition>