加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

如何在node的express中使用socket.io

发布时间:2016-11-24 05:03:25 所属栏目:Linux 来源:站长网
导读:服务器端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"); nb

服务器端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的具体方法。

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读