Socket在线聊天室

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

Node.js后端

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

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事件。

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版运行脚本快捷键

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 分布式计算(1)

    网格计算强调资源共享,使用者同时也是资源共享者,用于计算集中性服务(不便扩展 )。云计算的服务提供者少数而集中,资源专有,便于自动化扩展(其中对等计算更便于扩展...

    gojam
  • 阻止iCloud同步node_modules目录

    访达的“制作替身”能够创建软链接,即"/node_modules"与"/node_modules的替身"都可以作为路径使用。那么创建它的替身,将原文件夹加上"....

    gojam
  • 常说的XSS攻击是什么❓

    XSS(Cross-site scripting,跨站脚本)攻击是Web应用程序中一种典型的安全性漏洞。XSS允许攻击者向网页注入客户端脚本从而使其他浏览者运行...

    gojam
  • python的socket编程

    转自http://www.oschina.net/question/12_76126

    py3study
  • socket 编程初探

    一 简介 socket是两个应用程序进行通信的管道,这两个应用程序可以在同一台机器上,也可以位于两台不同的机器上,相同的网络或者不同网络之间的。Pyth...

    用户1278550
  • Python打造一个互动交友聊天室,免费在线聊天

    注:先运行“UDP程序接收socket数据”代码,再运行“UDP程序发送socket数据”代码,效果图如下所示。

    荣仔_最靓的仔
  • Python打造一个互动交友聊天室,免费在线聊天

    注:先运行“UDP程序接收socket数据”代码,再运行“UDP程序发送socket数据”代码,效果图如下所示。

    荣仔_最靓的仔
  • udp发送广播消息

    skylark
  • Python中socket的UDP学习(1)

    TCP是建立可靠连接,并且通信双方都可以以流的形式发送数据。相对TCP,UDP则是面向无连接的协议。

    萌海无涯
  • python实现socket通讯(UDP)

    import socket address = ('127.0.0.1', 31500) s = socket.socket(socket.AF_INET, ...

    阳光岛主

扫码关注云+社区

领取腾讯云代金券