2017-03-03 11 views
0

は私がサービス(削除、作成、取得、見つける)を持っていると私は、例えばsocket.iosocket.io経由でPOSTを送信する方法、またはsocket.io経由でfeathersjsサービスを呼び出す方法はありますか?

を経由してテーマを呼び出すしたいと思います:

ユーザーが別のユーザーにチャットにメッセージを書き込みます。要求を介して送信していないデータをソケットにリアルタイムで送信したいのですが、この時点では作成はmongooseのドキュメントなので、

それは可能ですか?はいの場合、どうすればいいですか?

以下は私のスニペットコードです:(サーバー側)

io.on('connect', function(socket){ 

    socket.on('message', function(id, msg){ 
    socket.to(id).emit('chat message', msg); 
    }); 

})) 

http://localhost:3030/messages < - RESTのAPIのURLマングースで文書を作成します。リンク上でデータを送信すると、ドキュメントが作成されます。私は、ドキュメントがsocket.io経由で作成され、要求ではないことが必要です。

私はこのような何か意味:まあ

io.on('connect', function(socket){ 

    socket.on('message', function(id, msg){ 
    socket.to(id).emit('chat message', msg); 

    // Socket call a create method of my service 
    socket.post('/messages', data); 

    }); 

})) 

答えて

1

Feathers as the clientを使用していない場合は、ソケットhereを使用してサービスを呼び出す方法に関する詳細なドキュメントをご覧ください。

A /messagesサービスのためのメッセージは、このようなソケット経由で直接作成することができます。

var socket = io(); 

socket.emit('messages::create', { 
    "text": "I really have to iron" 
}, (error, message) => { 
    console.log('Todo created', message); 
}); 

ます。また、このような任意の作成したイベントを聞くことができます。

var socket = io(); 

socket.on('messages created', data => console.log('Someone created a new message', data); 

socket.emit('messages::create', { 
    "text": "I really have to iron" 
}, (error, message) => { 
    console.log('Todo created', message); 
}); 
+0

それだけです!私はそれについて読む必要があります。ありがとう@ダフ – SeaDog

0

、イエスとノーを。 Socket.ioにHTTP/RESTスタイルの動詞はありませんが、必要なものを送信できるので、動詞を自分で追加できます。

あなたはリアルタイムAPIを構築するための、より構造化された方法を持つようにしたい場合はまた、あなたがActionHerpのようなフレームワークを見てみたいことがあります。HTTPに加えて

WebSocketまたはTCPソケットを基になるトランスポートとして使用することができ、必要に応じてカスタマイズできるカスタムの「アクション」を作成できます。あなたが羽を使用したいとあなたが何か他のものを使用しない場合

さて、あなたは羽-socketioを見てみることがあります。

それは羽ですSocket.ioリアルタイムAPIを介してFeathersサービスを公開するリアルタイムAPIプロバイダ。これはFeathers 1.xおよび2.xと互換性があります。そして、Socket.ioを使ってそれと対話することができます。

+0

私はfeathersjsを使用し、I他のものを追加したくない。私は完全なプロジェクトを持っていると言うことができます。私はデータを送るだけでよい。 – SeaDog

+0

@SeaDogそうだね。その場合、私の更新された答えを見てください。 – rsp

+0

私のプロジェクトにはsocket.ioが実装されています。私は他の何かを意味する。私は私の質問を更新しました。 – SeaDog

関連する問題