サーバー側のserver.jsコード
varexpress=require("express");
var http=require("http");
var sio=require("socket.io");
var app=express();
varserver=http.createServer(app);
var fs=require("fs");
app.get("/", function (req,res) {
res.sendfile(__dirname "/index.html");
});
サーバー.listen(1337);
varソケット=sio.listen(サーバー);
socket.on("接続", 関数 (ソケット) {
ソケット.emit("ニュース",{hello:"こんにちは"});
socket.on("otherEvent", function (data) {
console.log("サーバーがデータを受信しました: %j",data);
})
});
クライアントindex.htmlコード
<スクリプト src="/socket.io/socket.io.js">
<スクリプト>
varソケット=io.connect();
socket.on("ニュース", function (data) {
console.log(data.hello);
socket.emit("otherEvent",{my:"data"});
});
突然疑問が生じましたが、ニュースの監視コードを Emit と同じエンドに記述できますか?
この方法:
varexpress=require("express");
var http=require("http");
var sio=require("socket.io");
var app=express();
varserver=http.createServer(app);
app.get("/", function (req,res) {
res.sendfile(__dirname "/index.html");
});
server.listen(1337,"127.0.0.1", function () {
console.log("監視開始 1337");
});
varソケット=sio.listen(サーバー);
socket.on("接続", 関数 (ソケット) {
socket.on("ニュース", function (data) {
console.log(data.hello);
});
ソケット.emit("ニュース",{hello:"こんにちは"});
});
15 ~ 17 行のコードに注目してください。これらは私たちが新たに追加したものです。
事実はそれが不可能であることを証明しています。印刷は行われませんが、エラーも報告されません。
emit の実行は、婉曲的に「イベントの送信」と呼ばれます。パラメータがある場合は、婉曲的に「パラメータを運ぶ」と呼ばれます。
追記:
Express フレームワークのセッション呼び出しメソッドについても、インターネット上で多くの情報を見つけましたが、実際に役立つものは多くないことがわかりました。この記事は、私自身のプロジェクトの制作プロセスに基づいてまとめたものです。 Expressおよびsocket.IOでセッションを使用する具体的な方法。