Node.jsでSSEを実装するすべての方法がより複雑なコードで行われているように見えますが、SSEを送受信する簡単な方法があるようです。これを簡単にするAPIまたはモジュールはありますか?Node.jsでServer Sentイベントを実装する簡単な方法は?
答えて
あなたはSocket.ioを使用してこのようなことを行うことができるはずです。まず、npm install socket.io
でインストールする必要があります。クライアント上の
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('../..')(server);
var port = process.env.PORT || 3000;
server.listen(port, function() {
console.log('Server listening at port ' + port);
});
app.use(express.static(__dirname + '/public'));
io.on('connection', function (socket) {
socket.emit('EVENT_NAME', {data});
});
そして、このような何か:
そこから、あなたのコードでは、あなたはあなたがサーバー上でこのようなものを使用することができ more in-depth examples given by Socket.IO見ることができますvar io = require(socket.io);
を持っていることになるでしょう
<script src="socket_src_file_path_here"></script>
<script>
var socket = io('http://localhost');
socket.on('EVENT_NAME', function (data) {
console.log(data);
//Do whatever you want with the data on the client
});
</script>
例を参考にしていただき、ありがとうございます! – Jasch1
私は絶対に**このアプローチに反対しています!私はSocket.IOを長い間使用しています。時間が経つにつれて戦い始める苦痛があると確信しています。サーバーサイドイベントは**単方向**であり、ソケットは**双方向**です。 1つは要求応答タイプで、もう1つはロングタイプの接続です。違いは大きいので、ソケットは必要ありません。再接続、スパム保護、サーバーのダウン、おそらくクラスタリングに対処する必要があります。シンプルなSSEで動く、すでにブラウザに実装されている!それについての他の答えを見てください! –
OPはウェブソケットではなくSSEを求めました。 – krulik
サーバーから送信されるイベントはかなりシンプルです。ちょうどそれについての私の2つの部分のブログ記事を見てください。
少し複雑にもかかわらず、私はRedisを使う考えが好きです。セットアップが簡単で、非常に強力で堅牢なソリューションです。それはチャネルとそれの内部機能を使用してすべての開発の必要性を取り除くでしょう。時間の学習に投資する価値があります。良い例え! –
node.jsでSSEの実装が見つかりました。
Githubのリンク:https://github.com/einaros/sse.js
NPMモジュール:https://www.npmjs.com/package/sse
ウィル上記のリンクはあなたを助けますか?
**client.js**
var eventSource = new EventSource("/route/events");
eventSource.addEventListner("ping", function(e){log(e.data)});
//if no events specified
eventSource.addEventListner("message", function(e){log(e.data)});
**server.js**
http.createServer((req, res)=>{
if(req.url.indexOf("/route/events")>=){
res.setHeader('Connection', 'keep-alive');
res.setHeader("Cache-Control", "no-cache");
res.setHeader("Content-Type", "text/event-stream");
let event = "event: ping";
let id = `id: ${Date.now()}`;
let data = {
message:`hello @${new Date().toString()}`
}
data = "data: "+JSON.stringify(data);
res.end(`${event}\n${id}\n${data}\n\n`);
}
}).listen(PORT)
- 1. C++の.NETイベントを実装する最も簡単な方法
- 2. Xamarin PCLで簡単なプログレスバーを実装する方法は?
- 3. Androidで簡単なチャットクライアントを実装する方法は?
- 4. Node.jsプロジェクトを実行してデバッグする簡単な方法は?
- 5. SSE(Server Sent Events)セキュリティの実装
- 6. C#で簡単な汎用比較を実装する方法
- 7. 簡単な方法でPHPアプリケーションのビジネス層を実装する
- 8. Yii2で簡単な管理パネルを実装する方法
- 9. データリストコントロールで簡単にjqueryを実装する方法は?
- 10. 簡単なC++の機能を実装する方法を
- 11. Akka Streamsを使用して簡単なTCPプロトコルを実装する方法は?
- 12. Firebase通知:オプトアウトを実装する最も簡単な方法
- 13. 簡単なAndroid OAuthとサーバーAPIを実装する方法
- 14. 簡単なドロップダウンを実装するための方法Rails
- 15. レスポンスフォントサイジングを実装する簡単な方法
- 16. モデルフィールドにストップワードを実装する簡単な方法
- 17. 簡単な方法でasp.netアプリケーションでopen idを実装する方法
- 18. RailsでERBを実装する最も簡単な方法は何ですか?
- 19. 簡単なチャットサーバーの実装
- 20. LinqでSQL Serverのマージクエリを実装する簡単な方法はありますか?
- 21. JSFでルーティングを実装する簡単な方法はありますか?
- 22. シングルトンパターン - 簡単な実装ですか?
- 23. C++で公開鍵暗号を実装する簡単な方法は?
- 24. シンプルなWebサービスプロジェクトを実装する最も簡単な方法は?
- 25. クリティカルセクションの実装は簡単ですか?
- 26. javascriptでのマージソートの簡単な実装
- 27. このjqueryを簡単に実装する方法comobox
- 28. "トリガー"イベントを親に送信する簡単な方法は?
- 29. マルチプレイヤーJavaScriptゲームのバックエンドサーバーを実装する最も簡単な方法は? (COMET/longpolling)
- 30. バイナリ演算を実装する簡単な方法はありませんか?
ソケットについてはどうですか? – Daniel
@ダニエル、SSEはHTTPで動作し、HTTPはTCPソケット上で動作します:) "websockets"が適切でしょう。 しかし、今日はSSEを行うライブラリがたくさんあります。私は個人的にhttps://www.npmjs.com/package/@toverux/expresseを作成しました。これは私が既存のパッケージには満足していなかったからです。 –