使用socket.io实现简单聊天室案例


Posted in Javascript onJanuary 02, 2018

本文实例为大家分享了socket.io实现简单聊天室的具体代码,供大家参考,具体内容如下

1、客户端【index.html】代码:

<body>
  <h3>socket简例</h3>
  <hr>
  <div id = 'app'>
    <div>
      <div>
        <ul>
          <li v-for = 'item in msgs'>
            {{item.name}}说:{{item.content}}
          </li>
        </ul>
      </div>
      <div>
        <p><input type="text" v-model = 'msg'><button @click = 'm_send()'>发送</button></p>
      </div>
    </div>
  </div>

  <script type="text/javascript" src = 'https://cdn.bootcss.com/vue/2.5.9/vue.min.js'></script>
  <script type="text/javascript" src = 'https://cdn.bootcss.com/socket.io/1.7.3/socket.io.min.js'></script>
  <script type="text/javascript">

    var _vm = new Vue({
      data : {
        name : '用户',
        msg : '',
        msgs : [],
      },
      methods : {
        m_send : function() {

          // 向客户端发送消息
          socket_client.emit('say_client', {
            name : this.name,
            content : this.msg
          }) ;
          this.msg = '' ;
        }
      }
    }).$mount('#app') ;


    // socket服务器
    var socket_client = io.connect('http://127.0.0.1:3000') ; 

    /**
     * 监听服务端发来的消息
     *
     * 1、“say_server”是客户端发出信息时的key值
     * 2、“res”是客户端传来的value值
     */ 
    socket_client.on('say_server' ,function(res){

      console.log('服务端发来的消息为:', res) ;

      _vm.msgs.push(res);
    });

  </script>
</body>

2、服务端【app.js】代码:

const http = require('http') ;
const server = http.createServer() ;

// web服务器
const express = require('express') ;
const app = express();

app.use(express.static(__dirname + '/public'));

app.listen(8888, function () {
  console.log('web服务器成功启动了,IP:127.0.0.1,端口号:8888') ;
});


// socket服务器

const socketio = require('socket.io') ;
const socket_server = socketio(server) ;

// 建立和客户端的socket连接
socket_server.on('connection', function(client) {

// console.log(client) ;          // 查看连接进来的客户端对象内容  
// console.log(Object.keys(client)) ;    // 查看连接进来的客户端对象的关键key值

  /**
   * 监听客户端发来的消息
   *
   * 1、“say_client”是客户端发出信息时的key值
   * 2、“res”是客户端传来的value值
   */ 
  client.on('say_client', function(res) {
    console.log('客户端发来的消息为:', res) ;

    // 向客户端发送消息
    socket_server.emit('say_server', res) ;
  }) ;
}) ;


server.listen(3000, function() {
  console.log('socket服务器成功启动了,IP:127.0.0.1,端口号:3000') ;  
}) ;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
兼容IE与firefox火狐的回车事件(js与jquery)
Oct 20 Javascript
不使用浏览器运行javascript代码的方法
Jul 24 Javascript
网页从弹窗页面单选框传值至父页面代码分享
Sep 29 Javascript
JavaScript中Number对象的toFixed() 方法详解
Sep 02 Javascript
浅谈js的异步执行
Oct 18 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
Jan 17 Javascript
JavaScript函数表达式详解及实例
May 05 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
Jul 20 Javascript
关于express与koa的使用对比详解
Jan 25 Javascript
webpack多入口多出口的实现方法
Aug 17 Javascript
node中的session的具体使用
Sep 14 Javascript
小程序云开发实现数据库异步操作同步化
May 18 Javascript
使用socket.io制做简易WEB聊天室
Jan 02 #Javascript
AngularJS实现的简单拖拽功能示例
Jan 02 #Javascript
AngularJS实现的锚点楼层跳转功能示例
Jan 02 #Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
Jan 02 #jQuery
Node实战之不同环境下配置文件使用教程
Jan 02 #Javascript
jQuery动态添加元素无法触发绑定事件的解决方法分析
Jan 02 #jQuery
Node解决简单重复问题系列之Excel内容的获取
Jan 02 #Javascript
You might like
PHP 和 COM
2006/10/09 PHP
php数据库连接时容易出错的特殊符号问题
2010/09/01 PHP
在PHP中利用wsdl创建标准webservice的实现代码
2011/12/07 PHP
PHP加密解密函数详解
2015/10/28 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
javascript采用数组实现tab菜单切换效果
2012/12/12 Javascript
js页面跳转的常用方法整理
2013/10/18 Javascript
jquery中ajax处理跨域的三大方式
2016/01/05 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
layer弹出层框架alert与msg详解
2017/03/14 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
2017/04/22 Javascript
解决低版本的浏览器不支持es6的import问题
2018/03/09 Javascript
基于Vue实现拖拽效果
2018/04/27 Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
2018/10/02 Javascript
python根据路径导入模块的方法
2014/09/30 Python
Python进阶学习之特殊方法实例详析
2017/12/01 Python
python操作gitlab API过程解析
2019/12/27 Python
python torch.utils.data.DataLoader使用方法
2020/04/02 Python
如何快速理解python的垃圾回收机制
2020/09/01 Python
HTML5实现Notification API桌面通知功能
2016/03/02 HTML / CSS
HTML5学习笔记之History API
2015/02/26 HTML / CSS
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
周仰杰(JIMMY CHOO)英国官方网站:闻名世界的鞋子品牌
2018/10/28 全球购物
N:Philanthropy官网:美国洛杉矶基础款服装
2020/06/09 全球购物
DBA数据库管理员JAVA程序员架构师必看
2016/02/07 面试题
工作中的自我评价如何写好
2013/10/28 职场文书
中班上学期幼儿评语
2014/04/30 职场文书
俞敏洪北大演讲稿
2014/05/22 职场文书
物流仓管员岗位职责
2015/04/01 职场文书
2015年基层党建工作汇报材料
2015/06/25 职场文书
2015年食品安全宣传周活动总结
2015/07/09 职场文书
公司晚宴祝酒词
2015/08/11 职场文书
给学校的建议书400字
2015/09/14 职场文书
MySQL如何解决幻读问题
2021/08/07 MySQL
《雀魂PONG☆》4月1日播出 PV角色设定情报
2022/03/20 日漫