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
7be39724
Commit
7be39724
authored
Jun 07, 2018
by
ibuler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[Update] luna窗口大小
parent
f3b8f511
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
32 deletions
+14
-32
httpd.py
coco/httpd.py
+14
-32
No files found.
coco/httpd.py
View file @
7be39724
...
@@ -62,52 +62,35 @@ class ProxyNamespace(BaseNamespace):
...
@@ -62,52 +62,35 @@ class ProxyNamespace(BaseNamespace):
"""
"""
super
()
.
__init__
(
*
args
,
**
kwargs
)
super
()
.
__init__
(
*
args
,
**
kwargs
)
self
.
connections
=
dict
()
self
.
connections
=
dict
()
self
.
win_size
=
None
def
new_connection
(
self
):
def
new_connection
(
self
):
self
.
connections
[
request
.
sid
]
=
dict
()
self
.
connections
[
request
.
sid
]
=
dict
()
def
new_room
(
self
):
def
new_room
(
self
,
req
=
None
):
room_id
=
str
(
uuid
.
uuid4
())
room_id
=
str
(
uuid
.
uuid4
())
room
=
{
room
=
{
"id"
:
room_id
,
"id"
:
room_id
,
"proxy"
:
None
,
"proxy"
:
None
,
"client"
:
None
,
"client"
:
None
,
"forwarder"
:
None
,
"forwarder"
:
None
,
"request"
:
self
.
make_coco_request
(),
"request"
:
req
,
"cols"
:
80
,
"rows"
:
24
}
}
self
.
connections
[
request
.
sid
][
room_id
]
=
room
self
.
connections
[
request
.
sid
][
room_id
]
=
room
return
room
return
room
@staticmethod
def
make_coco_request
(
self
,
cols
=
80
,
rows
=
24
):
def
get_win_size
():
cols_request
=
request
.
cookies
.
get
(
'cols'
)
rows_request
=
request
.
cookies
.
get
(
'rows'
)
if
cols_request
and
cols_request
.
isdigit
():
cols
=
int
(
cols_request
)
else
:
cols
=
80
if
rows_request
and
rows_request
.
isdigit
():
rows
=
int
(
rows_request
)
else
:
rows
=
24
return
cols
,
rows
def
make_coco_request
(
self
):
x_forwarded_for
=
request
.
headers
.
get
(
"X-Forwarded-For"
,
''
)
.
split
(
','
)
x_forwarded_for
=
request
.
headers
.
get
(
"X-Forwarded-For"
,
''
)
.
split
(
','
)
if
x_forwarded_for
and
x_forwarded_for
[
0
]:
if
x_forwarded_for
and
x_forwarded_for
[
0
]:
remote_ip
=
x_forwarded_for
[
0
]
remote_ip
=
x_forwarded_for
[
0
]
else
:
else
:
remote_ip
=
request
.
remote_addr
remote_ip
=
request
.
remote_addr
width
,
height
=
self
.
get_win_size
()
req
=
Request
((
remote_ip
,
0
))
req
=
Request
((
remote_ip
,
0
))
req
.
user
=
self
.
current_user
req
.
user
=
self
.
current_user
req
.
meta
=
{
req
.
meta
=
{
"width"
:
width
,
"width"
:
cols
,
"height"
:
height
,
"height"
:
rows
,
}
}
return
req
return
req
...
@@ -122,19 +105,20 @@ class ProxyNamespace(BaseNamespace):
...
@@ -122,19 +105,20 @@ class ProxyNamespace(BaseNamespace):
asset_id
=
message
.
get
(
'uuid'
,
None
)
asset_id
=
message
.
get
(
'uuid'
,
None
)
user_id
=
message
.
get
(
'userid'
,
None
)
user_id
=
message
.
get
(
'userid'
,
None
)
secret
=
message
.
get
(
'secret'
,
None
)
secret
=
message
.
get
(
'secret'
,
None
)
room
=
self
.
new_room
()
self
.
win_size
=
message
.
get
(
'size'
,
(
80
,
24
))
req
=
self
.
make_coco_request
(
*
self
.
win_size
)
room
=
self
.
new_room
(
req
)
self
.
emit
(
'room'
,
{
'room'
:
room
[
"id"
],
'secret'
:
secret
})
self
.
emit
(
'room'
,
{
'room'
:
room
[
"id"
],
'secret'
:
secret
})
join_room
(
room
[
"id"
])
join_room
(
room
[
"id"
])
if
not
asset_id
or
not
user_id
:
if
not
asset_id
or
not
user_id
:
# self.on_connect()
return
return
asset
=
app_service
.
get_asset
(
asset_id
)
asset
=
app_service
.
get_asset
(
asset_id
)
system_user
=
app_service
.
get_system_user
(
user_id
)
system_user
=
app_service
.
get_system_user
(
user_id
)
if
not
asset
or
not
system_user
:
if
not
asset
or
not
system_user
:
self
.
on_connect
()
return
return
child
,
parent
=
socket
.
socketpair
()
child
,
parent
=
socket
.
socketpair
()
...
@@ -143,7 +127,6 @@ class ProxyNamespace(BaseNamespace):
...
@@ -143,7 +127,6 @@ class ProxyNamespace(BaseNamespace):
room
[
"client"
]
=
client
room
[
"client"
]
=
client
room
[
"forwarder"
]
=
forwarder
room
[
"forwarder"
]
=
forwarder
room
[
"proxy"
]
=
WSProxy
(
self
,
child
,
room
[
"id"
])
room
[
"proxy"
]
=
WSProxy
(
self
,
child
,
room
[
"id"
])
room
[
"cols"
],
room
[
"rows"
]
=
self
.
get_win_size
()
self
.
socketio
.
start_background_task
(
self
.
socketio
.
start_background_task
(
forwarder
.
proxy
,
asset
,
system_user
forwarder
.
proxy
,
asset
,
system_user
)
)
...
@@ -165,6 +148,7 @@ class ProxyNamespace(BaseNamespace):
...
@@ -165,6 +148,7 @@ class ProxyNamespace(BaseNamespace):
logger
.
debug
(
"On token trigger"
)
logger
.
debug
(
"On token trigger"
)
token
=
message
.
get
(
'token'
,
None
)
token
=
message
.
get
(
'token'
,
None
)
secret
=
message
.
get
(
'secret'
,
None
)
secret
=
message
.
get
(
'secret'
,
None
)
win_size
=
message
.
get
(
'size'
,
(
80
,
24
))
room
=
self
.
new_room
()
room
=
self
.
new_room
()
self
.
emit
(
'room'
,
{
'room'
:
room
[
"id"
],
'secret'
:
secret
})
self
.
emit
(
'room'
,
{
'room'
:
room
[
"id"
],
'secret'
:
secret
})
if
not
token
or
not
secret
:
if
not
token
or
not
secret
:
...
@@ -186,21 +170,19 @@ class ProxyNamespace(BaseNamespace):
...
@@ -186,21 +170,19 @@ class ProxyNamespace(BaseNamespace):
user_id
=
info
.
get
(
'user'
,
None
)
user_id
=
info
.
get
(
'user'
,
None
)
self
.
current_user
=
app_service
.
get_user_profile
(
user_id
)
self
.
current_user
=
app_service
.
get_user_profile
(
user_id
)
room
[
"request"
]
.
user
=
self
.
current_user
room
[
"request"
]
.
user
=
self
.
current_user
logger
.
debug
(
self
.
current_user
)
self
.
on_host
({
self
.
on_host
({
'secret'
:
secret
,
'secret'
:
secret
,
'uuid'
:
info
[
'asset'
],
'uuid'
:
info
[
'asset'
],
'userid'
:
info
[
'system_user'
],
'userid'
:
info
[
'system_user'
],
'size'
:
win_size
,
})
})
def
on_resize
(
self
,
message
):
def
on_resize
(
self
,
message
):
cols
,
rows
=
message
.
get
(
'cols'
,
None
),
message
.
get
(
'rows'
,
None
)
cols
,
rows
=
message
.
get
(
'cols'
,
None
),
message
.
get
(
'rows'
,
None
)
logger
.
debug
(
"On resize event trigger: {}*{}"
.
format
(
cols
,
rows
))
logger
.
debug
(
"On resize event trigger: {}*{}"
.
format
(
cols
,
rows
))
rooms
=
self
.
connections
.
get
(
request
.
sid
)
rooms
=
self
.
connections
.
get
(
request
.
sid
)
if
not
rooms
:
if
self
.
win_size
!=
(
cols
,
rows
):
return
logger
.
debug
(
"Start change win size: {}*{}"
.
format
(
cols
,
rows
))
room
=
list
(
rooms
.
values
())[
0
]
if
rooms
and
(
room
[
"cols"
],
room
[
"rows"
])
!=
(
cols
,
rows
):
for
room
in
rooms
.
values
():
for
room
in
rooms
.
values
():
room
[
"request"
]
.
meta
.
update
({
room
[
"request"
]
.
meta
.
update
({
'width'
:
cols
,
'height'
:
rows
'width'
:
cols
,
'height'
:
rows
...
...
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