用于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如何在数据库中插入行时自动发送电子邮件?   从进程输出读取的Java问题   java质疑StyledDocument和JTextPane之间的关系,以及接口的正确使用   java错误getPlayer(args[0]);   java如何使Spring引导在重新打包的WAR中包含清单文件?   Java中的除法与模   java使用2d数组和JfreeChart制作散点图   java扩展SonarQube FindBugs插件和自定义FindBugs插件   javaspring:hibernate+ehcache   具有不正确的equals和HashCode实现的java HashMap   java Jaspersoft报告网。旧金山。jasperreports。发动机例外:net。旧金山。jasperreports。发动机填满JRepressionEvalException:计算表达式时出错   java如果输入与其变量不匹配,如何添加错误   在java中使用简单数组[]实现队列   无法启动上下文路径/hsx上的java FAIL应用程序