Skip to content

Instantly share code, notes, and snippets.

@MtkN1
Last active June 17, 2022 05:05
Show Gist options
  • Select an option

  • Save MtkN1/77578c84d96aaae40c45f26de82e21e6 to your computer and use it in GitHub Desktop.

Select an option

Save MtkN1/77578c84d96aaae40c45f26de82e21e6 to your computer and use it in GitHub Desktop.
bitbank Socket.IO ライブラリを用いたエンコードとパース
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import aiohttp\n",
"from engineio.packet import Packet as PacketEIO, MESSAGE\n",
"from socketio.packet import Packet as PacketSIO, EVENT"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"request = None\n",
"response = []\n",
"\n",
"async with aiohttp.ClientSession() as session: # type: ignore\n",
" async with session.ws_connect(\"wss://stream.bitbank.cc/socket.io/?EIO=3&transport=websocket\") as ws: # type: ignore\n",
" # Request\n",
" data = [\"join-room\", \"ticker_btc_jpy\"]\n",
" siopkt = PacketSIO(EVENT, data=data)\n",
" eiopkt = PacketEIO(MESSAGE, data=siopkt.encode())\n",
" request = eiopkt.encode()\n",
" await ws.send_str(request)\n",
"\n",
" # Response\n",
" async for msg in ws: # type: ignore\n",
" eiopkt = PacketEIO(encoded_packet=msg.data)\n",
" siopkt = PacketSIO(encoded_packet=eiopkt.data)\n",
" response.append((siopkt.packet_type, siopkt.data))\n",
" if len(response) >= 5:\n",
" break"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'42[\"join-room\",\"ticker_btc_jpy\"]'"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"request"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[({'sid': 'y1m81mEhLspzkrAtDJIV',\n",
" 'upgrades': [],\n",
" 'pingInterval': 25000,\n",
" 'pingTimeout': 5000},\n",
" None),\n",
" (0, None),\n",
" (2,\n",
" ['message',\n",
" {'room_name': 'ticker_btc_jpy',\n",
" 'message': {'data': {'sell': '2755001',\n",
" 'buy': '2755000',\n",
" 'open': '2970912',\n",
" 'high': '2978970',\n",
" 'low': '2683700',\n",
" 'last': '2755000',\n",
" 'vol': '1061.8436',\n",
" 'timestamp': 1655441974644}}}]),\n",
" (2,\n",
" ['message',\n",
" {'room_name': 'ticker_btc_jpy',\n",
" 'message': {'data': {'sell': '2755001',\n",
" 'buy': '2755000',\n",
" 'open': '2970912',\n",
" 'high': '2978970',\n",
" 'low': '2683700',\n",
" 'last': '2755000',\n",
" 'vol': '1061.8436',\n",
" 'timestamp': 1655441975710}}}]),\n",
" (2,\n",
" ['message',\n",
" {'room_name': 'ticker_btc_jpy',\n",
" 'message': {'data': {'sell': '2755001',\n",
" 'buy': '2755000',\n",
" 'open': '2970912',\n",
" 'high': '2978970',\n",
" 'low': '2683700',\n",
" 'last': '2755000',\n",
" 'vol': '1061.8436',\n",
" 'timestamp': 1655441976653}}}])]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"response"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.10.4 ('main')",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.5"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "a8996f6d65209fdf250e1a57f1e1cb90a83d3a4b92832e1a1b3e57122cef6e04"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment