2

Sails コントローラーは ajax リクエストに対して適切な応答を返しますが、io.socket 経由で呼び出された場合は機能しません。

ソケット要求:

io.socket.request({ method: 'get', url: '/example-service/', params: {}, headers:{}}, function(body, JWR){ console.log(JWR); })

例外:

Error: Cannot write to response more than once\n    at onlyAllowOneResponse
node_modules/sails/lib/router/res.js:375:11
at MockServerResponse.send_shim [as send]
node_modules/sails/lib/router/res.js:192:7)

ブラウザでのソケット応答:

JWR {body: "Not implemented in core yet", headers: Object, statusCode: 501, error: "Not implemented in core yet"}

Sailsjs のドキュメントに従って、WebSocket のリクエスト/レスポンスは自動的に処理されます。

ここで何か不足していますか?ソケット要求に対して別の方法で応答を送信する必要がありますか?

4

1 に答える 1

3

例外は、このドキュメントに記載されているように、セイルによって websockets でサポートされていない res.render を使用していたためです。

http://sailsjs.org/documentation/reference/response-res

交換することでこれを修正しました

res.render 

sails.hooks.views.render
于 2015-11-25T06:06:28.167 に答える