เซิร์ฟเวอร์ Server.js รหัส
การคัดลอกรหัสมีดังนี้:
var express = ต้องการ ("express");
var http = ต้องการ ("http");
var sio = ต้องการ ("socket.io");
var app = express ();
var server = http.createServer (แอป);
var fs = ต้องการ ("fs");
app.get ("/", function (req, res) {
Res.SendFile (__ dirname+"/index.html");
-
Server.Listen (1337);
var socket = siO.listen (เซิร์ฟเวอร์);
socket.on ("การเชื่อมต่อ" ฟังก์ชั่น (ซ็อกเก็ต) {
socket.emit ("ข่าว", {สวัสดี: "สวัสดี"});
Socket.on ("Otherevent", function (data) {
console.log ("เซิร์ฟเวอร์ยอมรับข้อมูล:%j", ข้อมูล);
-
-
client index.html รหัส
การคัดลอกรหัสมีดังนี้:
<! doctype html>
<html>
<head lang = "en">
<meta charset = "utf-8">
<title> </title>
<script src = "/socket.io/socket.io.js"> </script>
<script>
var socket = io.connect ();
socket.on ("ข่าว", ฟังก์ชั่น (ข้อมูล) {
console.log (data.hello);
Socket.emit ("Otherevent", {my: "data"});
-
</script>
</head>
<body>
</body>
</html>
ทันใดนั้นฉันก็นึกถึงคำถาม: ฉันสามารถเขียนรหัสการฟังของข่าวได้ในตอนท้ายของการปล่อยออกมาหรือไม่?
ดังนั้น:
การคัดลอกรหัสมีดังนี้:
var express = ต้องการ ("express");
var http = ต้องการ ("http");
var sio = ต้องการ ("socket.io");
var app = express ();
var server = http.createServer (แอป);
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 (เซิร์ฟเวอร์);
socket.on ("การเชื่อมต่อ" ฟังก์ชั่น (ซ็อกเก็ต) {
socket.on ("ข่าว", ฟังก์ชั่น (ข้อมูล) {
console.log (data.hello);
-
socket.emit ("ข่าว", {สวัสดี: "สวัสดี"});
-
หมายเหตุรหัส 15 ~ 17 บรรทัด: มันถูกเพิ่มใหม่โดยเรา
ปรากฎว่าเป็นไปไม่ได้และจะไม่มีการพิมพ์ อย่างไรก็ตามจะไม่มีข้อผิดพลาด
การดำเนินการของ EMIT เรียกว่า "ส่งเหตุการณ์" หากมีพารามิเตอร์ชื่อจะเรียกว่า "พารามิเตอร์การพกพา"
Postscript:
ฉันยังพบวิธีการโทรแบบเซสชันจำนวนมากใน Framework Express Online แต่ฉันพบว่าไม่สามารถใช้งานได้ไม่มากนัก บทความนี้เป็นวิธีการเฉพาะของการใช้เซสชันใน Express และ Socket.io ตามกระบวนการผลิตของโครงการของฉันเอง