服务器端server.js代码
复制代码 代码如下:
nbsp;var express=require("express");
nbsp;var http=require("http");
nbsp;var sio=require("socket.io");
nbsp;var app=express();
nbsp;var server=http.createServer(app);
nbsp;var fs=require("fs");
nbsp;app.get("/", function (req,res) {
nbsp;nbsp;nbsp; res.sendfile(__dirname+"/index.html");
nbsp;});
nbsp;server.listen(1337);
nbsp;var socket=sio.listen(server);
nbsp;socket.on("connection", function (socket) {
nbsp;nbsp;nbsp;nbsp; socket.emit("news",{hello:"你好"});
nbsp;nbsp;nbsp;nbsp; socket.on("otherEvent", function (data) {
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; console.log("服务器端接受到数据:%j",data);
nbsp;nbsp;nbsp;nbsp; })
nbsp;});
客户端index.html代码
复制代码 代码如下:
nbsp;lt;!DOCTYPE htmlgt;
nbsp;lt;htmlgt;
nbsp;lt;head lang="en"gt;
nbsp;nbsp;nbsp;nbsp; lt;meta charset="UTF-8"gt;
nbsp;nbsp;nbsp;nbsp; lt;titlegt;lt;/titlegt;
nbsp;nbsp;nbsp;nbsp; lt;script src="/socket.io/socket.io.js"gt;lt;/scriptgt;
nbsp;nbsp;nbsp;nbsp; lt;scriptgt;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; var socket=io.connect();
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; socket.on("news", function (data) {
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; console.log(data.hello);
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; socket.emit("otherEvent",{my:"data"});
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; });
nbsp;nbsp;nbsp;nbsp; lt;/scriptgt;
nbsp;lt;/headgt;
nbsp;lt;bodygt;
nbsp;lt;/bodygt;
nbsp;lt;/htmlgt;
忽然想到一个问题.我可不可以把news的监听代码写到和emit的同一端.
这样:
复制代码 代码如下:
nbsp;var express=require("express");
nbsp;var http=require("http");
nbsp;var sio=require("socket.io");
nbsp;var app=express();
nbsp;var server=http.createServer(app);
nbsp;app.get("/", function (req,res) {
nbsp;nbsp;nbsp;nbsp; res.sendfile(__dirname+"/index.html");
nbsp;});
nbsp;server.listen(1337,"127.0.0.1", function () {
nbsp;nbsp;nbsp;nbsp; console.log("开始监听1337");
nbsp;});
nbsp;var socket=sio.listen(server);
nbsp;socket.on("connection", function (socket) {
nbsp;nbsp;nbsp;nbsp; socket.on("news", function (data) {
nbsp;nbsp;nbsp;nbsp; console.log(data.hello);
nbsp;nbsp;nbsp;nbsp; });
nbsp;nbsp;nbsp;nbsp; socket.emit("news",{hello:"你好"});
nbsp;});
注意15~17行代码:是我们新添加的.
事实证明不可以,不会有任何的打印.但是也是不会报错的.
emit的执行,美其名曰:发送事件.如果有参数,美其名曰:携带参数.
后记:
在网上也找到不少关于Express框架中的session调用方法,可是发现真正能用的不是很多,本文是根据自己项目的制作过程,整理的Express和socket.IO中使用session的具体方法。 (编辑:开发网_开封站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|