Pushjet-Server-Api icon indicating copy to clipboard operation
Pushjet-Server-Api copied to clipboard

receiving messages from a TCP socket in Python

Open eadmaster opened this issue 8 years ago • 2 comments

Is it possible to receive the messages sent to a service via a TCP socket and a simple Python script? I've tried using the script in this page + this code for subscription, but it didn't work (invalid UUID error):

#!/usr/bin/env python
from uuid import uuid4
from socket import socket, AF_INET, SOCK_STREAM
from json import loads as json_decode
import logging
import json

uuid   = uuid4()  # this device ID (random generated)
uuid = str(uuid).upper()
print("geneated uuid=" + str(uuid))
server = 'api.pushjet.io'
port   = 7171

import requests
r = requests.post('https://api.pushjet.io/subscription', params={ 'uuid': '\''+str(uuid)+'\'', 'service': MY_SERVICE_ID })
print(r.status_code)
if(r.status_code!=200):
    print("subscription error: " + str(r.status_code))
    exit (1)
else:
    print(str(r.json()))

print("Connecting as {} to {}:{}".format(uuid, server, port))
pj_sock = socket(AF_INET, SOCK_STREAM)
pj_sock.connect((server, port))
pj_sock.send(bytes(uuid))
... # the rest it's the same as the script here http://docs.pushjet.io/docs/tcp

eadmaster avatar Dec 28 '17 21:12 eadmaster

r = requests.post('https://api.pushjet.io/subscription', params={ 'uuid': '\''+str(uuid)+'\'', 'service': MY_SERVICE_ID })

should most likely be

r = requests.post('https://api.pushjet.io/subscription', params={ 'uuid': +str(uuid), 'service': MY_SERVICE_ID })

From what I can infer from your code is that it sends the uuid with two single quotes (') on each side. Not just the uuid.

Mechazawa avatar Jan 10 '18 19:01 Mechazawa

thank you for the tip, now it subscribes correctly, but after that it is not receiving the messages i sent via curl (while the android app is receiving them just fine)

eadmaster avatar Jan 11 '18 01:01 eadmaster