Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F7893048
websocket_client.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
websocket_client.ex
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma.Integration.WebsocketClient
do
# https://github.com/phoenixframework/phoenix/blob/master/test/support/websocket_client.exs
@doc
"""
Starts the WebSocket server for given ws URL. Received Socket.Message's
are forwarded to the sender pid
"""
def
start_link
(
sender
,
url
,
headers
\\
[])
do
:crypto
.
start
()
:ssl
.
start
()
:websocket_client
.
start_link
(
String
.
to_charlist
(
url
),
__MODULE__
,
[
sender
],
extra_headers
:
headers
)
end
@doc
"""
Closes the socket
"""
def
close
(
socket
)
do
send
(
socket
,
:close
)
end
@doc
"""
Sends a low-level text message to the client.
"""
def
send_text
(
server_pid
,
msg
)
do
send
(
server_pid
,
{
:text
,
msg
})
end
@doc
false
def
init
([
sender
],
_conn_state
)
do
{
:ok
,
%{
sender
:
sender
}}
end
@doc
false
def
websocket_handle
(
frame
,
_conn_state
,
state
)
do
send
(
state
.
sender
,
frame
)
{
:ok
,
state
}
end
@doc
false
def
websocket_info
({
:text
,
msg
},
_conn_state
,
state
)
do
{
:reply
,
{
:text
,
msg
},
state
}
end
def
websocket_info
(
:close
,
_conn_state
,
_state
)
do
{
:close
,
<<>>,
"done"
}
end
@doc
false
def
websocket_terminate
(
_reason
,
_conn_state
,
_state
)
do
:ok
end
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Thu, Oct 2, 4:46 AM (1 d, 20 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
477161
Default Alt Text
websocket_client.ex (1 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment