Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation
This project
Loading...
Sign in
罗鑫霖
/
vion-tools
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 42eb8fb9
authored
Mar 24, 2020
by
周志凯
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
[chg]: changed config
1 parent
a5a446d3
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
2 additions
and
164 deletions
static/js/common.js
static/js/socket.js
static/js/common.js
View file @
42eb8fb
apiUrl
=
'http://192.168.9.146:8080/'
,
webSockUrl
=
'192.168.9.146:8080'
\ No newline at end of file
apiUrl
=
''
,
webSockUrl
=
''
\ No newline at end of file
static/js/socket.js
deleted
100644 → 0
View file @
a5a446d
;(
function
(
root
,
factory
)
{
var
ws
=
factory
(
root
);
if
(
typeof
define
===
'function'
&&
define
.
amd
)
{
define
([],
factory
);
}
else
if
(
typeof
module
!==
'undefined'
&&
module
.
exports
)
{
module
.
exports
=
factory
();
}
else
{
root
.
ws
=
factory
();
}
}(
this
,
function
(
root
,
undefined
)
{
if
(
!
'WebSocket'
in
window
)
return
var
_handlers
=
{},
wsocket
,
eventTarget
=
document
.
createElement
(
'div'
),
settings
=
{
// 是否重连
autoConnect
:
true
,
// 自动重连延迟重连速度
reConnectDelay
:
1.5
},
func
=
function
()
{},
// 对外泄露Api
_api
=
{
CONNECT
:
WebSocket
.
CONNECTING
,
OPEN
:
WebSocket
.
OPEN
,
CLOSING
:
WebSocket
.
CLOSING
,
CLOSED
:
WebSocket
.
CLOSED
};
/**
* ws
* @param {string} url
* @param {*} protocols
* @param {object} options
*/
function
ws
(
url
,
protocols
,
options
)
{
var
self
=
this
;
// url
this
.
url
=
url
;
// 状态
this
.
readyState
=
WebSocket
.
CONNECTING
;
/**
* http://tools.ietf.org/html/rfc6455
* 服务器选择的子协定, 这是建立 WebSocket 对象时 protocols 参数里的其中一个字符串
*/
this
.
protocols
=
protocols
||
null
;
// 绑定选项定义设置
if
(
!
options
)
options
=
{}
for
(
var
key
in
settings
)
{
this
[
key
]
=
typeof
options
[
key
]
!==
'undefined'
?
options
[
key
]
:
settings
[
key
];
}
// 公开 api
for
(
var
a
in
_api
)
this
[
a
]
=
_api
[
a
];
// 事件处理程序
eventTarget
.
addEventListener
(
'open'
,
function
(
event
)
{
self
!==
window
&&
self
.
onopen
(
event
);
});
eventTarget
.
addEventListener
(
'close'
,
function
(
event
)
{
self
!==
window
&&
self
.
onclose
(
event
);
});
eventTarget
.
addEventListener
(
'connecting'
,
function
(
event
)
{
self
!==
window
&&
self
.
onconnecting
(
event
);
});
eventTarget
.
addEventListener
(
'message'
,
function
(
event
)
{
self
!==
window
&&
self
.
onmessage
(
event
);
});
eventTarget
.
addEventListener
(
'error'
,
function
(
event
)
{
self
!==
window
&&
self
.
onerror
(
event
);
});
// 公开事件目的 API
this
.
addEventListener
=
eventTarget
.
addEventListener
.
bind
(
eventTarget
);
this
.
removeEventListener
=
eventTarget
.
removeEventListener
.
bind
(
eventTarget
);
this
.
dispatchEvent
=
eventTarget
.
dispatchEvent
.
bind
(
eventTarget
);
if
(
this
.
autoConnect
===
true
&&
this
!==
window
)
this
.
open
();
return
this
}
/**
* 产生一个事件, 与标准兼容, 兼容的浏览器和IE9~IE11?
* http://stackoverflow.com/questions/19345392/why-arent-my-parameters-getting-passed-through-to-a-dispatched-event/19345563#19345563
* https://msdn.microsoft.com/library/ff975299(v=vs.85).aspx
* @param {string} eventName
* @param {*} args
*/
function
generateEvent
(
eventName
,
args
)
{
var
evt
=
document
.
createEvent
(
'CustomEvent'
);
evt
.
initCustomEvent
(
eventName
,
false
,
false
,
args
);
return
evt
;
}
ws
.
prototype
.
onconnecting
=
func
;
ws
.
prototype
.
onopen
=
func
;
ws
.
prototype
.
onerror
=
func
;
ws
.
prototype
.
onmessage
=
func
;
/**
* send
* @param {*} data
*/
ws
.
prototype
.
send
=
function
(
data
)
{
if
(
this
.
wsocket
)
{
this
.
wsocket
.
send
(
data
);
}
else
{
throw
'INVAILD_STATE_ERR : Pausing to reconnect WebSocket'
;
}
}
/**
* close
* 错误代码参考:https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent
* @param {*} code
* @param {*} reason
*/
ws
.
prototype
.
close
=
function
(
code
,
reason
)
{
// 默认CLOSE_NORMAL 代码
typeof
code
===
'undefined'
&&
(
code
=
1000
);
this
.
wsocket
&&
this
.
wsocket
.
close
(
code
,
reason
)
}
/**
* open
*/
ws
.
prototype
.
open
=
function
()
{
var
self
=
this
;
if
(
"WebSocket"
in
window
)
{
wsocket
=
new
WebSocket
(
this
.
url
,
this
.
protocols
||
[]);
}
else
if
(
"MozWebSocket"
in
window
)
{
wsocket
=
new
MozWebSocket
(
this
.
url
,
this
.
protocols
||
[]);
}
else
{
wsocket
=
new
SockJS
(
this
.
url
,
this
.
protocols
||
[]);
}
// wsocket = new WebSocket(this.url, this.protocols || []);
eventTarget
.
dispatchEvent
(
generateEvent
(
'connecting'
));
wsocket
.
onopen
=
function
(
event
)
{
self
.
protocols
=
ws
.
protocols
;
self
.
readyState
=
WebSocket
.
OPEN
;
var
e
=
generateEvent
(
'open'
);
eventTarget
.
dispatchEvent
(
e
);
}
wsocket
.
onclose
=
function
(
event
)
{
self
.
readyState
=
WebSocket
.
CLOSED
;
var
e
=
generateEvent
(
'connecting'
);
e
.
code
=
event
.
code
;
e
.
reason
=
event
.
reason
;
e
.
wasClean
=
event
.
wasClean
;
eventTarget
.
dispatchEvent
(
e
);
eventTarget
.
dispatchEvent
(
generateEvent
(
'close'
));
}
wsocket
.
onmessage
=
function
(
event
)
{
var
e
=
generateEvent
(
'message'
);
e
.
data
=
event
.
data
;
eventTarget
.
dispatchEvent
(
e
);
}
wsocket
.
onerror
=
function
(
event
)
{
var
e
=
generateEvent
(
'error'
);
eventTarget
.
dispatchEvent
(
e
);
}
this
.
wsocket
=
wsocket
;
return
this
;
}
return
ws
;
}));
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment