firefox support
This commit is contained in:
parent
41beb829a0
commit
c8733951de
3 changed files with 72 additions and 2 deletions
63
DUnit/Win32/Debug/html/wstest.html
Normal file
63
DUnit/Win32/Debug/html/wstest.html
Normal file
|
@ -0,0 +1,63 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8" />
|
||||
<title>WebSocket Test</title>
|
||||
<script language="javascript" type="text/javascript">
|
||||
|
||||
var wsUri = "ws://localhost:8099/";
|
||||
var output;
|
||||
|
||||
function init() {
|
||||
output = document.getElementById("output");
|
||||
testWebSocket();
|
||||
}
|
||||
|
||||
function testWebSocket() {
|
||||
websocket = new WebSocket(wsUri);
|
||||
websocket.onopen = function(evt) { onOpen(evt) };
|
||||
websocket.onclose = function(evt) { onClose(evt) };
|
||||
websocket.onmessage = function(evt) { onMessage(evt) };
|
||||
websocket.onerror = function(evt) { onError(evt) };
|
||||
}
|
||||
|
||||
function onOpen(evt) {
|
||||
writeToScreen("CONNECTED");
|
||||
doSend("WebSocket rocks");
|
||||
}
|
||||
|
||||
function onClose(evt) {
|
||||
writeToScreen("DISCONNECTED");
|
||||
}
|
||||
|
||||
function onMessage(evt) {
|
||||
writeToScreen('<span style="color: blue;">RESPONSE: ' +
|
||||
evt.data+'</span>');
|
||||
}
|
||||
|
||||
function onError(evt) {
|
||||
writeToScreen('<span style="color: red;">ERROR:</span> ' +
|
||||
evt.data);
|
||||
}
|
||||
|
||||
function doSend(message) {
|
||||
writeToScreen("SENT: " + message);
|
||||
websocket.send(message);
|
||||
}
|
||||
|
||||
function writeToScreen(message) {
|
||||
var pre = document.createElement("p");
|
||||
pre.style.wordWrap = "break-word";
|
||||
pre.innerHTML = message;
|
||||
output.appendChild(pre);
|
||||
}
|
||||
|
||||
window.addEventListener("load", init, false);
|
||||
|
||||
</script>
|
||||
|
||||
WebSocket Test
|
||||
|
||||
<div id="output">
|
||||
</div>
|
||||
|
||||
|
||||
</html>
|
|
@ -99,9 +99,16 @@ end;
|
|||
|
||||
procedure TTestWebSockets.HandleHTTPServerCommandGet(AContext: TIdContext;
|
||||
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
|
||||
var sfile: string;
|
||||
begin
|
||||
if ARequestInfo.Document = '/index.html' then
|
||||
AResponseInfo.ContentText := 'dummy index.html';
|
||||
AResponseInfo.ContentText := 'dummy index.html'
|
||||
else
|
||||
begin
|
||||
sfile := ExtractFilePath(Application.ExeName) + ARequestInfo.Document;
|
||||
if FileExists(sfile) then
|
||||
AResponseInfo.ContentStream := TFileStream.Create(sfile, fmOpenRead);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTestWebSockets.StartServer;
|
||||
|
|
|
@ -180,7 +180,7 @@ begin
|
|||
Sec-WebSocket-Version: 13 *)
|
||||
|
||||
//Connection: Upgrade
|
||||
if not SameText('Upgrade', ARequestInfo.Connection) then
|
||||
if not ContainsText(ARequestInfo.Connection, 'Upgrade') then //Firefox uses "keep-alive, Upgrade"
|
||||
begin
|
||||
//initiele ondersteuning voor socket.io
|
||||
if SameText(ARequestInfo.document , '/socket.io/1/') then
|
||||
|
|
Loading…
Reference in a new issue