用于python适配器的lightstreamer sdk

lightstreamer-adapter的Python项目详细描述


< >使用< > >

安装软件包:

$ pip install lightstreamer-adapter

配置Lightstreamer

  1. 下载并安装Lightstreamer

  2. 转到Lightstreamer服务器安装的 适配器 文件夹。创建一个新文件夹来部署远程适配器,我们称之为pythonadapter

  3. pythonadapter 文件夹中创建一个 adapters.xml 文件,并使用以下内容(这是一个示例配置,您可以使用通用模板 docs sdks/adapter远程处理基础结构/doc/adapter conf_template/adapters.x根据自己的喜好对其进行修改ml docs sdks/adapter远程处理基础设施/doc/adapter健壮配置模板/adapters.xml ,作为参考:

    <?xml version="1.0"?><adapters_confid="PROXY_PYTHON"><metadata_provider><adapter_class>ROBUST_PROXY_FOR_REMOTE_ADAPTER</adapter_class><classloader>log-enabled</classloader><paramname="request_reply_port">8003</param><paramname="timeout">36000000</param></metadata_provider><data_provider><adapter_class>ROBUST_PROXY_FOR_REMOTE_ADAPTER</adapter_class><classloader>log-enabled</classloader><paramname="request_reply_port">8001</param><paramname="notify_port">8002</param><paramname="timeout">36000000</param></data_provider></adapters_conf>
  4. 注意adapters.xml文件中配置的端口,因为这些端口是写入适配器的远程部分所必需的。

编写适配器

创建一个新的python模块,我们将其命名为adapter s.py,在这里我们将放置编写基本适配器集所需的最小逻辑。

  1. 导入连接到Lightstreamer服务器所需的服务器类,以及要扩展以编写自己的远程适配器的适配器类:

    fromlightstreamer_adapter.serverimport(DataProviderServer,MetadataProviderServer)fromlightstreamer_adapter.interfaces.dataimportDataProviderfromlightstreamer_adapter.interfaces.metadataimportMetadataProvider
  2. 通过子类化dataprovider抽象类来创建新的远程数据适配器:

    classMyDataAdapter(DataProvider):"""This Remote Data Adapter sample class shows a simple implementation of
        the DataProvider abstract class."""def__init__(self):# Reference to the provided ItemEventListener instanceself._listener=Nonedefissnapshot_available(self,item_name):"""Returns True if Snapshot information will be sent for the item_name
            item before the updates."""snapshot=False# May be based on the item_name itemreturnsnapshotdefset_listener(self,event_listener):"""Caches the reference to the provided ItemEventListener instance."""self._listener=event_listenerdefsubscribe(self,item_name):"""Invoked to request data for an item. From now on you can start
            sending real time updates for item_name item, through invocations like
            the following:
    
            self._listener.update(item_name, {'field1': valField1,
                                              'field2': valField2}, False)
            """defunsubscribe(self,item_name):"""Invoked to end a previous request of data for an item. From now on,
            you should stop sending updates for item_name item."""
  3. 如果MetadataProvider类的默认行为不符合您的要求,则通过子类化MetadataProvider类来创建新的远程元数据适配器,并重写要为其提供自定义实现的方法:

    classMyMetadataAdapter(MetadataProvider):"""This Remote Metadata Adapter sample class shows a minimal custom
        implementation of the notify_user_message method.
        """defnotify_user_message(self,user,session_id,message):"""Invoked to forward a message received by a User"""print("Message {} arrived for user {} in the session {}".format(user,session_id,message))
  4. 通过创建、配置和启动服务器类实例来运行适配器:

    if__name__=="__main__":# The host of the Lightstreamer server, to be changed as required.LS_SERVER_HOST='localhost'# Creates a new MetadataProviderServer instance, passing a new# MyMetadataAdpater object and the remote address.metadata_provider_server=MetadataProviderServer(MyMetadataAdapter(),(LS_SERVER_HOST,8003))# Starts the server instance.metadata_provider_server.start()# Creates a new DataProviderServer instance, passing a new MyDataAdpater# object and the remote addressdata_provider_sever=DataProviderServer(MyDataAdapter(),(LS_SERVER_HOST,8001,8002))# Starts the server instance.data_provider_sever.start()

运行

从命令行执行:

$ python adapters.py

连接客户端

varlsClient=newLightstreamerClient(LS_SERVER_HOST,"PROXY_PYTHON");lsClient.connect();// To be completed with other client side activities, like registration of subscriptions and handling of
// real time updates.
// ...

其中, ls_server_host 是Lightstreamer服务器的主机, "proxy_python" 是在 adapters.xml 文件中指定的适配器集ID。

API参考

API参考可在http://lightstreamer lib python adapter.readthedocs.io/en/version-1.1.3" rel="nofollow">http://lightstreamer lib python adapter.readthedocs.io/en/version-1.1.3上找到。

您可以通过从 doc 文件夹执行以下命令来生成它:

$ make html

生成的文档将在 doc\\u build\html 文件夹下提供。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Cassandra复制因子大于节点数   java J2EE JTA事务回滚不适用于OSE Glassfish 4.0(Build 89)   java spring安全预认证用户登录   org的java类文件。反应流。从RxJava编译示例时未找到Publisher?   java在使用dataFormat作为POJO通过Camel调用Web服务时无法设置SOAP标头   Javafx类的java静态实例   java如何防止一个部件在关闭时覆盖另一个部件的位置   sql server无法从我的java代码连接到数据库   java在JList(Swing)中显示带有的ArrayList   从Java中的CXF服务获取WSAddressing数据   使用资产文件夹进行java简单json解析(本地)   java LDAPException未绑定的无效凭据   JavaJSFspring部署到weblogic   JAVA中字符数组中的特定元素排列?   如果脚本位于不同的目录中,则ant不会使用exec标记运行Javashell脚本