Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
Choose a Base Repository
Nothing to show
Choose a Head Repository
Nothing to show
  • 4 commits
  • 2 files changed
  • 0 commit comments
  • 1 contributor
Showing with 25 additions and 11 deletions.
  1. +24 −11 elm/Native/WebSocket.js
  2. +1 −0 elm/WebSocket/LowLevel.elm
View
@@ -11,30 +11,43 @@ function open(url, settings)
}
catch(err)
{
console.log("conn exception");
return callback(_elm_lang$core$Native_Scheduler.fail({
ctor: err.name === 'SecurityError' ? 'BadSecurity' : 'BadArgs',
_0: err.message
ctor: err.name === 'SecurityError' ? 'BadSecurity' : 'BadArgs'
}));
}
socket.addEventListener("open", function(event) {
callback(_elm_lang$core$Native_Scheduler.succeed(socket));
});
socket.addEventListener("message", function(event) {
_elm_lang$core$Native_Scheduler.rawSpawn(A2(settings.onMessage, socket, event.data));
});
socket.addEventListener("close", function(event) {
function onEarlyClose(event) {
console.log("on early close");
return callback(_elm_lang$core$Native_Scheduler.fail({
ctor: 'FailedOpen'
}));
}
function onClose(event) {
console.log("on close");
_elm_lang$core$Native_Scheduler.rawSpawn(settings.onClose({
code: event.code,
reason: event.reason,
wasClean: event.wasClean
}));
}
function onMessage(event) {
console.log("on message");
_elm_lang$core$Native_Scheduler.rawSpawn(A2(settings.onMessage, socket, event.data));
}
socket.addEventListener("close", onEarlyClose);
socket.addEventListener("open", function(event) {
console.log("on open");
socket.removeEventListener("close", onEarlyClose);
socket.addEventListener("close", onClose);
socket.addEventListener("message", onMessage);
callback(_elm_lang$core$Native_Scheduler.succeed(socket));
});
return function()
{
console.log("returned function");
if (socket && socket.close)
{
socket.close();
@@ -80,6 +80,7 @@ type alias Settings =
type BadOpen
= BadSecurity
| BadArgs
| FailedOpen
{-| Close a `WebSocket`. If the connection is already closed, it does nothing.

No commit comments for this range