Node.js 使用节点SOAP创建SOAP Web服务
我遵循了git回购()的示例: 问题1 我已经创建了一个服务器,有必要在回调中创建服务器。从我的理解来看,Node.js 使用节点SOAP创建SOAP Web服务,node.js,web-services,soap,Node.js,Web Services,Soap,我遵循了git回购()的示例: 问题1 我已经创建了一个服务器,有必要在回调中创建服务器。从我的理解来看,readFileSync无论如何都是阻塞的 问题2 编写非阻塞并将soap.listen放入回调不是更好吗 问题3 我从哪里获得:'myservice.wsdl'。我必须创建它/如何创建它?有发电机吗 肥皂、服务、咖啡 服务员:咖啡 对问题1的回答:readFileSync用于加载wsdl而不是创建服务器。所以不需要在回调中创建服务器 对问题2的回答:soap.listen正在侦听一个请求,
readFileSync
无论如何都是阻塞的
问题2
编写非阻塞并将soap.listen放入回调不是更好吗
问题3
我从哪里获得:'myservice.wsdl'
。我必须创建它/如何创建它?有发电机吗
肥皂、服务、咖啡
服务员:咖啡
对问题1的回答:
readFileSync
用于加载wsdl而不是创建服务器。所以不需要在回调中创建服务器
对问题2的回答:soap.listen正在侦听一个请求,然后该请求被处理。这是#do some work
步骤,可能会阻塞该步骤,因此在该步骤之后会出现回调
对问题3的回答:您必须在编写SOAP API服务器时创建wsdl,或者如果您使用的是现有服务,则应以wsdl
结尾的url形式提供wsdl以供使用
wsdl
位于xml
中,因此可以生成
另请参阅我的soap示例项目。您好,感谢您的回购,这对我非常有用。只有一件事?我能够使用您的示例通过SOAP客户机进行连接,但我也希望通过HTTP公开服务。你知道怎么做吗?我在您的文件(例如globalweather.wsdl)中看到了Http绑定(get和post),但我无法通过Http访问服务。我尝试在app.js中添加GlobalWeatherHttpGet和GlobalWeatherHttpPost项目,您可以在其中定义soap服务器,但没有成功。我制作了一个入门示例。
exports.getService = () ->
myService = {
MyService: {
MyPort: {
# This is how to define an asynchronous function.
MyAsyncFunction: (args, callback) ->
# do some work
callback({
name: args.name
})
}
}
}
exports.getXml = () ->
require('fs').readFileSync('myservice.wsdl', 'utf8', ()->
server = http.createServer((request,response) ->
response.end("404: Not Found: "+request.url)
)
)
...
http = require('http')
portHTTP = process.env.PORT || 61361
io = require('socket.io')
soap = require('soap')
soapService = require('./backend/soap/soap.service.js')
...
server = http.createServer(app).listen(portHTTP, () ->
logger.info("Unsecure Express server listening on port #{portHTTP} environment: #{environment}")
)
soap.listen(server, '/wsdl', soapService.getService, soapService.getXml)