nodejs+websocket实现聊天室功能

最近一个朋友在项目中需要实现实时聊天等一些功能,帮忙弄了个粗略的,上代码。

服务器端

安装 express 跟 socket.io

npm install --save express

npm install --save socket.io

var app = require(‘express‘)();
var http = require(‘http‘).Server(app);
var io = require(‘socket.io‘)(http);

app.get(‘/‘, function(req, res){
    res.send(‘<h1>Welcome Realtime Server</h1>‘);
});

io.on("connection",function(socket){
    console.log("a user connected");

    socket.on("disconnect",function(){
        console.log("a user disconnect");
        io.emit("dis",{
            user_id : socket.name
        });
    });

    socket.on("join",function(data){
        var userid = data.userid;
        socket.name = userid;
        io.emit("joinok",{
            msg : "join ok",
            userid : userid
        });
    });

    socket.on("xiaoxi",function(data){
        io.emit("message",data);
    });

});

http.listen(1000, function(){
    console.log(‘listening on *:1000‘);
});

客户端

引入socket.io

   // 连接服务器
    var socket = io.connect(server_add);
    socket.emit("join",{
        userid : user_id
    });

    socket.on("joinok",function(data){
        rtop.append(‘<p>‘+data.userid+‘加入聊天室</p>‘);
    });

    function sendfn(){
        var val = $.trim(text.val());
        if(val == "") return alert("请输入");

        socket.emit("xiaoxi",{
            user_id : user_id,
            msg : val
        });
    }

    socket.on("message",function(data){
        rtop.append(‘<p>‘+data.user_id+‘说: ‘+data.msg+‘</p>‘);
        if(data.user_id == user_id) text.val("");
    });

    socket.on("dis",function(data){
        rtop.append(‘<p>‘+data.user_id+‘离开</p>‘);
    });
时间: 2024-11-11 10:37:08

nodejs+websocket实现聊天室功能的相关文章

nodejs+websocket制作聊天室视频教程

本套教程主要讲解了node平台的安装,node初级知识.node 服务器端程序响应http请求,通过npm安装第三方包,websocket即时通讯.聊天页面界面制作.拖动原理.拖动效果.遮罩效果.定位和浮动.滚动条滚动高度设置.用户进入与离开聊天室提示.当前在线人数的即时统计和显示.以及群聊和私聊两大聊天功能.本套教程js代码稍微有点多,对0基础的初学者可能会有一定的难度,希望通过本套教程的学习,让大家认识nodejs,感受用js写服务器端程序的乐趣. 本教程是高清完整版视频教程. 技术咨询和交

基于django channel 实现websocket的聊天室

websocket ? 网易聊天室? ? web微信? ? 直播? 假如你工作以后,你的老板让你来开发一个内部的微信程序,你需要怎么办?我们先来分析一下里面的技术难点 消息的实时性? 实现群聊 现在有这样一个需求,老板给到你了,关乎你是否能转正?你要怎么做? 我们先说消息的实时性,按照我们目前的想法是我需要用http协议来做,那么http协议怎么来做那? 是不是要一直去访问我们的服务器,问服务器有没有人给我发消息,有没有人给我发消息?那么大家认为我多长时间去访问一次服务比较合适那? 1分钟1次?

nodejs+socket.io聊天室

nodejs+socket.io 聊天室 Node.js v0.12.6 Socket.io v1.3.5 RequireJS v2.1.18 Materialize v0.97.0 聊天室演示地址 项目地址 版权声明:本文为博主原创文章,未经博主允许不得转载.

搭建Websocket简易聊天室

本文,我们通过Egret和Node.js实现一个在线聊天室的demo.主要包括:聊天,改用户名,查看其他用户在线状态的功能.大致流程为,用户访问网页,即进入聊天状态,成为新游客,通过底部的输入框,可以输入自己想说的话,点击发布,信息呈现给所有在聊天的人的页面.用户可以实时修改自己的昵称,用户离线上线都会实时广播给其他用户. 体验链接 http://7hds.com:8888/ 下图为最终制作完成的聊天面板 WebSocket服务器可以用其他语言编写,本文采用的方法建立在Node.js上 . 在N

Spring Boot2 系列教程 (十七) | 整合 WebSocket 实现聊天室

微信公众号:一个优秀的废人.如有问题,请后台留言,反正我也不会听. 前言 昨天那篇介绍了 WebSocket 实现广播,也即服务器端有消息时,将消息发送给所有连接了当前 endpoint 的浏览器.但这无法解决消息由谁发送,又由谁接收的问题.所以,今天写一篇实现一对一的聊天室. 今天这一篇建立在昨天那一篇的基础之上,为便于更好理解今天这一篇,推荐先阅读:「SpringBoot 整合WebSocket 实现广播消息 」 准备工作 Spring Boot 2.1.3 RELEASE Spring S

SignalR实现在线聊天室功能(欢迎、发送、回复、私信、屏蔽)

一.在线聊天室 1.新建解决方案 SignalROnlineChatDemo 2.新建MVC项目 SignalROnlineChatDemo.Web (无身份验证) 3.安装SignalR PM> install-package Microsoft.AspNet.SignalR 4. 创建一个称为 Startup.cs 的新类 1 public class Startup 2 { 3 public void Configuration(IAppBuilder app) 4 { 5 // 有关如何

WebSocket 网页聊天室的实现(服务器端:.net + windows服务,前端:Html5)

websocket是HTML5中的比较有特色一块,它使得以往在客户端软件中常用的socket在web程序中也能轻松的使用,较大的提高了效率.废话不多说,直接进入题. 网页聊天室包括2个部分,后端服务器+前端页面. 1.后端服务部分:.net4.0 + windows服务.相比寄宿在iis中,寄宿在进程中的windows服务更加的稳定可靠(文章中的例子用windows控制台程序演示,后面给出完整的windows服务的代码). 2.前端部分:html5 + jQuery + bootstrap.基本

php+html5基于websocket实现聊天室的方法

<?php error_reporting(E_ALL); ob_implicit_flush(); $sk=new Sock('127.0.0.1',8000); $sk->run(); class Sock{ public $sockets; public $users; public $master; public function __construct($address, $port){ $this->master=$this->WebSocket($address, $

03_netty实现聊天室功能

[概述] 聊天室主要由两块组成:聊天服务器端(ChatRoomServer)和聊天客户端(ChatClient). [ 聊天服务器(ChatRoomServer)功能概述 ] 1.监听所有客户端的接入.断线 2.有客户端A接入聊天室时,将接入消息发给除了客户端A的其他客户端 3.当客户端A退出聊天室时,将退出消息发给除了客户端A的其他客户端 4.当客户端A发送消息到聊天室时,将消息转发给除了客户端A的其他客户端 [ 聊天客户端(ChatClient)功能概述 ] 1.发送消息至聊天服务器 2.接