span8
span4
有关将FME服务器作为WebSocket服务器的信息,请参见WebSocket的文档。
在PostGIS中,每当一个特性(行)在表中被更改时,Node.js都会接收关于该特性的信息。在javascript文件中,当Node.js从PostGIS接收特性时,它使用ws模块将特性流到FME服务器。
const WebSocket =需要('ws');var pg = require ('pg');var请求= require('request');var pgConString = "postgres://username:password@server:port/database";const ws = new WebSocket('ws://FMEserver:7078/ WebSocket /', {header: {"ws_op": "open", "ws_stream_id": "postgres"}});控制台。log("pre open ready state " + ws.readyState);ws。on('open', function() { ws.send('{ "ws_op" : "open", "ws_stream_id" : "postgres", "ws_msg" : "open" }');});pg.connect(pgConString, function(err, client) {if(err) {console.log(err);} else {console.log('HELLO');客户端。on('notification', function(msg) { console.log("msg is "+msg.payload);/ / db_body = JSON.parse (msg.payload);msgType = msg.payload类型;sendmsg2 = (' {“ws_op”:“发送”、“ws_stream_id”:“postgres”、“ws_msg”: ' + msg.payload + '} ');ws。send (sendmsg2);});} var查询= client。query("LISTEN watchers2");});
如果要编辑大量数据,这是很有用的。与每次向主题发送通知并触发每个特性的工作空间不同,WebSockets允许使用一个工作空间来处理出现的特性。
可以将WebSockets设置为FME服务器中的发布,并将每个消息发布到一个主题。
也可以使用WebSocketReceiver转换器接收WebSockets。必须指定相同的参数:WebSocket服务器URL和流ID。
完整的工作空间在这里:的WebSocket-接收机complete.fmw
有关需求的更多信息,请参见教程的开始页面。
修改postgis2ws.js文件以匹配您的数据库和FME服务器连接需求。
在命令提示窗口中,导航到节点可执行文件所在的文件夹。在命令窗口中键入:node
如果什么都没发生,那很好。代码中的任何错误都会在这里报告。
在FME工作台中添加一个创建者、一个WebSocketReceiver和一个日志记录器。需要设置WebSocketReceiver连接序言来连接到postgis2ws.js文件中的流,在本例中,WebSocket流是'postgres'。
{“ws_op”:“开放”,“ws_stream_ids”: [" postgres "]}
工作空间完成后,运行它。只有一个功能,将造物主行进到WebSocketReceiver。
您可以在转换日志注意到WebSocketReceiver正在等待进入的WebSocket的消息。此工作区将继续运行,直到取消,将保持等待消息。
WebSocketReceiver:试图连接到主机上的端口“7078”“本地主机” WebSocketReceiver:成功连接到主机“本地主机”在端口“7078” WebSocketReceiver:与远程主机WebSocketReceiver执行握手:握手成功WebSocketReceiver:发送的连接序言WebSocketReceiver:等待传入 WebSocket messages...
现在是从PostGIS的表去和编辑,创建或删除某些功能的时间。这可以是使用FME(在一个单独的工作区),或者使用GIS。
该工作区可以发布到FME Server和RAN或设置为一个时间表。工作区将使用一个引擎作业正在运行的全部时间。这可能比运行大量快速的,更小的工作不断,如果大量的功能来通过为主题的消息少“看病贵”,创建每个功能一个作业。
FME Server现在具有高级属性正在运行的任务或计划时:
这将允许工作继续下去,直到取消或取消,直到一组到期时间。这将允许WebSocketReceiver工作区,于办公时间内运行,或者每当有将在数据库表活动。
由于_output属性是JSON,一个JSONFlattener将有助于把每个键为属性。然后AttributeManager可以用来创建可以用来通知的功能所做的更改某人的消息。
当创建功能,删除或PostGIS的功能改变应该开始通过工作区流。发送的消息将出现在翻译登录窗口,由于记录仪变压器。
此工作区可以很容易地扩展到开始执行新的功能或通知有关各方验证过程。
©2019安全亚搏在线软件公司法律