用于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第三方库


热门话题
是否可以将Ghost CMS与Spring Boot(Java)一起使用?如果没有,还有好的选择吗?   java简单XML框架解析器在Android中发布XML解析   java如何将数组列表设置为listview中的图像视图   java从JPA查找GUI   java为什么XSSFWorksheet的getName()不起作用?   java为什么Eclipse不记得我的启动配置?   使用java处理Json API响应   调用AlertDialog。按下后退按钮时Android片段的Java生成器   在Android中以编程方式选择项目ListView   java交错网格布局用于从实时数据库加载图像,不显示   java如何找到测试套件。Testng中的xml执行状态   java如何使用Appium通过selenium找到警报对话框?   java如何避免使用Johann的   学生编辑不起作用(Java+Spring+MySQl)?   EclipseMilo中的java身份验证clientserver   java Solr DIH获取大小无效   j_安全检查上的java筛选器不工作。Glassfish V3 Netbeans 6.8