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;
|
procedure TTestWebSockets.HandleHTTPServerCommandGet(AContext: TIdContext;
|
||||||
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
|
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
|
||||||
|
var sfile: string;
|
||||||
begin
|
begin
|
||||||
if ARequestInfo.Document = '/index.html' then
|
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;
|
end;
|
||||||
|
|
||||||
procedure TTestWebSockets.StartServer;
|
procedure TTestWebSockets.StartServer;
|
||||||
|
|
|
@ -180,7 +180,7 @@ begin
|
||||||
Sec-WebSocket-Version: 13 *)
|
Sec-WebSocket-Version: 13 *)
|
||||||
|
|
||||||
//Connection: Upgrade
|
//Connection: Upgrade
|
||||||
if not SameText('Upgrade', ARequestInfo.Connection) then
|
if not ContainsText(ARequestInfo.Connection, 'Upgrade') then //Firefox uses "keep-alive, Upgrade"
|
||||||
begin
|
begin
|
||||||
//initiele ondersteuning voor socket.io
|
//initiele ondersteuning voor socket.io
|
||||||
if SameText(ARequestInfo.document , '/socket.io/1/') then
|
if SameText(ARequestInfo.document , '/socket.io/1/') then
|
||||||
|
|
Loading…
Reference in a new issue