前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Socket在线聊天室

Socket在线聊天室

作者头像
gojam
发布2019-09-29 17:16:58
2.5K0
发布2019-09-29 17:16:58
举报
文章被收录于专栏:gojam技术备忘录

因为刚好课上学socket,写一个聊天室吧。socket.io封装的很好,不用自己写,有空可以自己用socket api试试。

Node.js后端

使用express、http、socket.io提供的功能搭建简单的socket服务器。就很简单,监听socket连接并向所有用户转发message事件的内容。

代码语言:javascript
复制
let app = require('express')();
let http = require('http').createServer(app);
let io = require('socket.io')(http);

app.get("/",function(req,res){
    res.send('<p>OK!</p>');
});

http.listen(3000,function(){
    console.log("listening on 3000")
});

io.on('connection',function(socket){
    console.log('created connection');
    socket.on('disconnect',function(){
        console.log('disconnect')
    })
    socket.on('message',function(val){
        io.emit('message',val)
    })
})

前端

这段js植入html页面,或者webpack server。接收到服务器message事件时,向列表添加li元素,点击button时向服务器发送message事件。

代码语言:javascript
复制
const ul =document.createElement("ul");
ul.id="messages";
document.body.appendChild(ul);
const input = document.createElement("input");
document.body.appendChild(input);
const button = document.createElement("button");
button.innerHTML="submit";
document.body.appendChild(button);

const socket=document.createElement("script");
socket.src="https://cdn.jsdelivr.net/npm/socket.io-client@2/dist/socket.io.js";
document.body.appendChild(socket);

socket.onload=function(){
    let socket = io('http://guohere.com:3000/')
    socket.on('message',function(val){
        const li =document.createElement("li");
        li.innerText=val;
        ul.appendChild(li);
    })
    button.onclick=function(){
        socket.emit('message',input.value)
    }
}

文章导航

R mac版运行脚本快捷键

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年9月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前端
  • 文章导航
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档