サーバーサイドサーバー。JSコード
コードコピーは次のとおりです。
var Express = require( "Express");
var http = require( "http");
var sio = require( "socket.io");
var app = Express();
var server = http.createserver(app);
var fs = require( "fs");
app.get( "/"、function(req、res){
res.sendfile(__ dirname+"/index.html");
});
server.listen(1337);
var socket = sio.listen(server);
socket.on( "connection"、function(socket){
socket.emit( "news"、{hello: "hello"});
socket.on( "otherevent"、function(data){
console.log( "サーバーはデータを受け入れます:%j"、data);
})
});
クライアントindex.htmlコード
コードコピーは次のとおりです。
<!doctype html>
<html>
<head lang = "en">
<メタcharset = "utf-8">
<title> </title>
<スクリプトsrc = "/socket.io/socket.io.js"> </script>
<スクリプト>
var socket = io.connect();
socket.on( "news"、function(data){
console.log(data.hello);
socket.emit( "otherevent"、{my: "data"});
});
</script>
</head>
<body>
</body>
</html>
突然、私は質問を考えました:私はEMITと同じ終わりにニュースのリスニングコードを書くことができますか?
それで:
コードコピーは次のとおりです。
var Express = require( "Express");
var http = require( "http");
var sio = require( "socket.io");
var app = Express();
var server = 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 socket = sio.listen(server);
socket.on( "connection"、function(socket){
socket.on( "news"、function(data){
console.log(data.hello);
});
socket.emit( "news"、{hello: "hello"});
});
15〜17行のコードに注意してください:それは私たちによって新たに追加されました。
それは不可能であり、印刷がないことがわかります。ただし、エラーはありません。
EMITの実行は「イベントを送信」と呼ばれます。パラメーターがある場合、名前は「パラメーターを伝える」と呼ばれます。
postScript:
また、Expressフレームワークでオンラインで多くのセッションコールメソッドを発見しましたが、それらの多くを使用できないことがわかりました。この記事は、私自身のプロジェクトの生産プロセスに基づいて、ExpressおよびSocket.ioでセッションを使用する特定の方法です。