Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
C
coco
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ops
coco
Commits
457fc034
Commit
457fc034
authored
7 years ago
by
i317280
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: update
parent
25645140
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
27 additions
and
2 deletions
+27
-2
httpd.py
coco/httpd.py
+27
-2
No files found.
coco/httpd.py
View file @
457fc034
...
...
@@ -60,18 +60,25 @@ class BaseWebSocketHandler:
class
SSHws
(
Namespace
,
BaseWebSocketHandler
):
def
__init__
(
self
,
*
args
,
**
kwargs
):
self
.
clients
=
dict
()
self
.
rooms
=
dict
()
super
()
.
__init__
(
*
args
,
**
kwargs
)
def
on_connect
(
self
):
room
=
str
(
uuid
.
uuid4
())
self
.
clients
[
request
.
sid
]
=
{
"cols"
:
int
(
request
.
cookies
.
get
(
'cols'
,
80
)),
"rows"
:
int
(
request
.
cookies
.
get
(
'rows'
,
24
)),
"room"
:
str
(
uuid
.
uuid4
())
,
"room"
:
room
,
"chan"
:
None
,
"proxy"
:
None
,
"client"
:
None
,
}
join_room
(
self
.
clients
[
request
.
sid
][
"room"
])
self
.
rooms
[
room
]
=
{
"admin"
:
request
.
sid
,
"member"
:
[],
"rw"
:
[]
}
join_room
(
room
)
self
.
prepare
(
request
)
...
...
@@ -100,7 +107,25 @@ class SSHws(Namespace, BaseWebSocketHandler):
self
.
clients
[
request
.
sid
][
"request"
]
.
meta
[
'height'
]
=
message
.
get
(
'rows'
,
24
)
self
.
clients
[
request
.
sid
][
"request"
]
.
change_size_event
.
set
()
def
on_room
(
self
,
message
):
if
message
==
'get'
:
self
.
emit
(
'room'
,
self
.
clients
[
request
.
sid
][
"room"
],
room
=
self
.
clients
[
request
.
sid
][
"room"
])
elif
message
==
'join'
:
pass
def
on_join
(
self
,
room
):
self
.
clients
[
request
.
sid
][
"room"
]
=
room
self
.
rooms
[
room
][
"member"
]
.
append
(
request
.
sid
)
join_room
(
room
=
room
)
def
on_leave
(
self
,
room
):
if
self
.
rooms
[
room
][
"admin"
]
==
request
.
sid
:
self
.
emit
(
"data"
,
"
\n
Admin leave"
,
room
=
room
)
self
.
rooms
.
remove
(
room
)
leave_room
(
room
=
room
)
def
on_disconnect
(
self
):
self
.
on_leave
(
self
.
clients
[
request
.
sid
][
"room"
])
try
:
# todo: there maybe have bug
self
.
clients
[
request
.
sid
][
"proxy"
]
.
close
()
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
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 comment