Skip to main content

Phoenix Elixir 的 Websocket 客户端

项目描述

phxsocket

使用回调的同步凤凰 websocket 客户端

凤凰频道

要求

websockets

用法

导入包

import phxsocket

创建套接字客户端

socket = phxsocket.Client("wss://target.url/channel/websocket", {"options": "something"})

连接并加入频道

if socket.connect(): # blocking, raises exception on failure
  channel = socket.channel("room:roomname", {"more options": "something else"})
  resp = channel.join() # also blocking, raises exception on failure

或者

def connect_to_channel(socket):
  channel = socket.channel("room:roomname", {"more options": "something else"})
  resp = channel.join()

socket.on_open = connect_to_channel
connection = socket.connect(blocking=False)

connection.wait() # blocking, raises exception on failure

断开时重新连接

socket.on_close = lambda socket: socket.connect()

订阅活动

def do_something(payload):
  thing = payload["thing"]

channel.on("eventname", do_something)

将数据推送到通道

channel.push("eventname", {"some": "data"})

推送数据并等待响应

message = channel.push("eventname", {"some": "data"}, reply=True)
response = message.wait_for_response() # blocking

推送数据并通过回调对响应做出反应

def respond(payload):
  print(payload)

channel.push("eventname", {"some": "data"}, respond)

离开一个频道

channel.leave()

断开

socket.close()

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

phxsocket-0.1.2.tar.gz (4.5 kB 查看哈希)

已上传 source

内置分布

phxsocket-0.1.2-py3-none-any.whl (17.5 kB 查看哈希

已上传 py3