changeset 63:a3718b297d16

WIP starting to try a unified websocket between rdfdb and syncedgraph Ignore-this: 6e59eb9b2fb382f3ca3cbe4bb1ce925
author drewp@bigasterisk.com
date Fri, 31 May 2019 06:46:41 +0000
parents bd0e24f6254a
children c1a9403e5d21
files rdfdb/syncedgraph.py setup.py
diffstat 2 files changed, 27 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/rdfdb/syncedgraph.py	Fri May 31 02:51:08 2019 +0000
+++ b/rdfdb/syncedgraph.py	Fri May 31 06:46:41 2019 +0000
@@ -23,7 +23,8 @@
 from twisted.internet import defer
 import socket
 import treq
-
+import autobahn.twisted.websocket
+from twisted.internet import reactor
 from rdfdb.autodepgraphapi import AutoDepGraphApi
 from rdfdb.currentstategraphapi import CurrentStateGraphApi
 from rdfdb.grapheditapi import GraphEditApi
@@ -39,6 +40,17 @@
 log = logging.getLogger('syncedgraph')
 
 
+
+class WsClient(autobahn.twisted.websocket.WebSocketClientProtocol):
+    def __init__(self, sg=0):
+        super().__init__()
+        self.sg = sg
+    def onOpen(self):
+        print('ws open')
+    def onMessage(self, payload, isBinary):
+        print('on msg')
+
+
 class SyncedGraph(CurrentStateGraphApi, AutoDepGraphApi, GraphEditApi):
     """
     graph for clients to use. Changes are synced with the master graph
@@ -73,18 +85,25 @@
 
         receiverHost is the hostname other nodes can use to talk to me
         """
-        if receiverHost is None:
-            receiverHost = socket.gethostname()
+
+        # get that reonnecting agent
+        factory = autobahn.twisted.websocket.WebSocketClientFactory()
+        factory.protocol = WsClient
+
+        reactor.connectTCP("127.0.0.1", 8209, factory) #  need the path of /patches
+        
+        #if receiverHost is None:
+        #    receiverHost = socket.gethostname()
 
         self.rdfdbRoot = rdfdbRoot
         self.initiallySynced: defer.Deferred[None] = defer.Deferred()
         self._graph = ConjunctiveGraph()
 
-        self._receiver = PatchReceiver(self.rdfdbRoot, receiverHost, label,
-                                       self._onPatch)
+        #self._receiver = PatchReceiver(self.rdfdbRoot, receiverHost, label,
+        #                               self._onPatch)
 
-        self._sender = PatchSender(self.rdfdbRoot + 'patches',
-                                   self._receiver.updateResource)
+        #self._sender = PatchSender(self.rdfdbRoot + 'patches',
+        #                           self._receiver.updateResource)
         AutoDepGraphApi.__init__(self)
         # this needs more state to track if we're doing a resync (and
         # everything has to error or wait) or if we're live
--- a/setup.py	Fri May 31 02:51:08 2019 +0000
+++ b/setup.py	Fri May 31 06:46:41 2019 +0000
@@ -11,6 +11,7 @@
         'treq',
         'rdflib-jsonld',
         'service_identity',
+        "autobahn",
         'scales', # use git+http://github.com/drewp/scales.git@master#egg=scales
         ],
     url='https://projects.bigasterisk.com/rdfdb/rdfdb-0.18.0.tar.gz',