我遵循了git repo(https://github.com/vpulim/node-soap)的这个例子:
我已经创建了一个服务器是否有必要在回调中创建服务器。从我的理解readFileSync
无论如何阻止。
编写非阻塞并将soap.listen放入回调中会不会更好
我从哪里获得:'myservice.wsdl'
。我必须创建它/如何创建它?有发电机吗?
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)
答案 0 :(得分:1)
回答问题1:readFileSync
用于加载wsdl而不是创建服务器。因此,没有必要在回调中创建服务器。
回答问题2:soap.listen正在侦听请求然后处理。 # do some work
步骤可能会阻止该步骤之后的回调。
回答问题3:您必须在编写SOAP API服务器时创建wsdl,或者如果您使用的是现有服务,则应提供以wsdl
结尾的URL形式使用。< / p>
wsdl
位于xml
,因此可以生成。 See which wsdl style to use notes
另见我的肥皂示例项目nodejs_mock_agresso。