西班牙
斯潘4
有关fme服务器作为websocket服务器的信息,请参见WebSocket文档是的。
每次postgis中的表中更改一个特性(行)时,node.js都会接收有关该特性的信息。在javascript文件中,当node.js从postgis接收到特性时,它使用ws模块将特性流式传输到fme服务器。
const websocket=需要('ws');var pg=需要('pg');var request=require('request');var pgconstring=“postgres://username:password@server:port/database”;const ws=new websocket('ws://fmeserver:7078/websocket/',{headers:{“ws-op”:“open”,“ws-stream-id”:“postgres”});console.log(“预打开就绪状态”+ws.ready state);ws.on('open',function(){ws.send('{“ws-op”:“open”,“ws-stream-id”:“postgres”,“ws-msg”:“open”}');});pg.connect(pgconstring,函数(err,client){if(err){console.log(err);}其他{console.log('hello');client.on('通知',函数(msg){console.log(“msg is”+msg.payload);//db_body=json.parse(msg.payload);msgtype=typeof msg.payload;sendmsg2=('{“ws_op”:“send”,“ws_stream_id”:“postgres”,“ws_msg”:'+msg.payload+'}');发送(sendmsg2);});}var query=client.query(“监听监视程序2”);});
如果正在编辑大量数据,这将非常有用。WebSockets网站不必每次向主题发送通知并为每个功能触发一个工作区,而是允许使用一个工作区来处理出现的功能。
websockets可以设置为fme服务器中的发布,并且每个消息都发布到一个主题。
websockets也可以使用websocketreceiver转换器接收。必须指定相同的参数:websocket服务器url和流id。
此处提供完整的工作区:websocket-receiver-complete.fmw网站
有关需求的更多信息,请参见教程的起始页。
修改postgis2ws.js文件以匹配数据库和fme服务器连接要求。
在命令提示窗口中,导航到节点可执行文件所在的文件夹。在命令窗口中键入:node
如果什么都没发生,那就好。这里将报告代码中的任何错误。
在fme workbench中添加一个creator、一个websocketreceiver和一个logger。需要设置WebSocketReceiver连接前导码以连接到postgis2ws.js文件中的流,在本例中,WebSocket流为“postgres”。
{“ws-op”:“打开”,“ws-u流id”:[“postgres”]}
一旦工作区完成,就运行它。只有一个功能将从创建者转移到WebSocketReceiver。
您可能在翻译日志中注意到WebSocketReceiver正在等待传入的WebSocket消息。此工作区将继续运行,直到取消,并将一直等待消息。
WebSocketReceiver:尝试连接到端口“7078”上的主机“localhost”WebSocketReceiver:成功连接到端口“7078”上的主机“localhost”WebSocketReceiver:正在与远程主机WebSocketReceiver执行握手:握手成功WebSocketReceiver:传输的连接前导WebSocketReceiver:正在等待传入WebSocket消息…
现在是时候去编辑、创建或删除postgis表中的一些要素了。这可以使用fme(在单独的工作空间中)或使用gis。
此工作区可以发布到fme服务器并作为计划运行或设置。工作区将在整个作业运行期间使用一个引擎。如果有很多功能以主题消息的形式出现,每个功能创建一个作业,那么这可能比经常运行许多快速、较小的作业要便宜。
运行作业或计划时,FME服务器现在具有高级属性:
这将允许作业在取消前继续,或在设置的到期时间前取消。这将允许WebSocketReceiver工作区在工作时间内运行,或者在数据库表上有活动时运行。
由于输出属性是json,jsonflatter将有助于将每个键转换为属性。然后可以使用attributemanager创建一条消息,该消息可用于通知某人功能的更改。
在postgis中创建、删除或更改要素时,要素应开始在工作区中流动。由于记录器转换器的原因,发送的消息将出现在转换日志窗口中。
这个工作区可以很容易地扩展到开始对新特性执行验证过程或通知相关方。
?2019安全亚搏在线软件公司|合法的