zoukankan      html  css  js  c++  java
  • node的express中使用socket.io

    服务器端server.js代码

     1 var express=require("express");
     2 var http=require("http");
     3 var sio=require("socket.io");
     4 var app=express();
     5 var server=http.createServer(app);
     6 var fs=require("fs");
     7 app.get("/", function (req,res) {
     8    res.sendfile(__dirname+"/index.html");
     9 });
    10 server.listen(1337);
    11 var socket=sio.listen(server);
    12 socket.on("connection", function (socket) {
    13     socket.emit("news",{hello:"你好"});
    14     socket.on("otherEvent", function (data) {
    15         console.log("服务器端接受到数据:%j",data);
    16     })
    17 });

    客户端index.html代码

     1 <!DOCTYPE html>
     2 <html>
     3 <head lang="en">
     4     <meta charset="UTF-8">
     5     <title></title>
     6     <script src="/socket.io/socket.io.js"></script>
     7     <script>
     8         var socket=io.connect();
     9         socket.on("news", function (data) {
    10             console.log(data.hello);
    11             socket.emit("otherEvent",{my:"data"});
    12         });
    13     </script>
    14 </head>
    15 <body>
    16 
    17 </body>
    18 </html>

    忽然想到一个问题.我可不可以把news的监听代码写到和emit的同一端.

    这样:

     1 var express=require("express");
     2 var http=require("http");
     3 var sio=require("socket.io");
     4 var app=express();
     5 var server=http.createServer(app);
     6 app.get("/", function (req,res) {
     7     res.sendfile(__dirname+"/index.html");
     8 });
     9 server.listen(1337,"127.0.0.1", function () {
    10     console.log("开始监听1337");
    11 });
    12 var socket=sio.listen(server);
    13 
    14 socket.on("connection", function (socket) {
    15     socket.on("news", function (data) {
    16     console.log(data.hello);
    17     });
    18     socket.emit("news",{hello:"你好"});
    19 });

    注意15~17行代码:是我们新添加的.

    事实证明不可以,不会有任何的打印.但是也是不会报错的.

    emit的执行,美其名曰:发送事件.如果有参数,美其名曰:携带参数.

  • 相关阅读:
    Java堆和优先队列
    JAVA取数两个数组交集,考虑重复和不重复元素
    Java策略模式
    Java设计模式迭代器
    Java 模板模式
    java图片缩放与裁剪
    Java桥接模式
    Java集合实现
    Java Mybatis实现主从同步
    Java组合模式
  • 原文地址:https://www.cnblogs.com/guoyansi19900907/p/4161436.html
Copyright © 2011-2022 走看看