Server:

var app = require('http').createServer(handler)
, io = require('socket.io').listen(app)
, fs = require('fs'); app.listen(80);
console.log('server listen on port 80'); function handler (req, res) {
fs.readFile(__dirname + '/public/index.html',
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
} res.writeHead(200);
res.end(data);
});
} var chatroom=io.of('/chat').on('connection',function(socket){
console.log(id+'connected');
var id=null;
socket.on('setid',function(sid){
id=sid;
socket.emit('id',id);
chatroom.emit('msg',id+' join the chatroom');
});
socket.on('msg',function(msg){
chatroom.emit('msg',id+' : '+msg);
});
})

Client:

<!doctype html>
<html>
<head>
<title>socket.io</title>
<script type="text/javascript" src="/socket.io/socket.io.js"></script>
<style type="text/css">
body{
font: message-box;
}
#output{
height:200px;
border:1px solid #888;
overflow-y: scroll;
}
</style>
</head>
<body>
<div id="output"></div>
<span id="userid"></span>
<input type="text" id="text" placeholder='input your name'>
<button id="btn">connect</button> <script type="text/javascript">
var socket = null;
var btn=document.getElementById('btn');
var text=document.getElementById('text');
var output=document.getElementById('output');
btn.onclick=function(e){
console.log('btn click');
socket = io.connect('http://localhost/chat');
socket.on('connect',function(){
console.log('connect');
socket.emit('setid',text.value);
socket.on('id',function(id){
document.getElementById('userid').innerText=id+':';
});
socket.on('msg',function(msg){
output.innerText+=(msg+'\n');
output.scrollTop=output.scrollHeight;
});
btn.innerText='send';
text.placeholder='input msg';
text.value='';
btn.onclick=function(e){
socket.emit('msg',text.value);
text.value='';
}
});
};
</script>
</body>
</html>

使用nodejs引用socket.io做聊天室的更多相关文章

  1. Socket.io在线聊天室

    从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Javascript引擎.chrome浏 ...

  2. 使用socket.io搭建聊天室

    最近在学习nodejs,需要找一些项目练练手.找来找去发现了一个聊天室的教程,足够简单,也能从中学到一些东西.下面记录我练习过程中待一些笔记. nodeJS模块 共用到了2个模块,express和so ...

  3. node.js + socket.io实现聊天室一

    前段时间,公司打算在社区做一个聊天室.决定让我来做.本小白第一次做聊天类功能,当时还想着通过ajax请求来实现.经过经理提示,说试试当前流行的node.js 和socket.io来做.于是就上网学习研 ...

  4. 使用 Socket.IO 开发聊天室

    前言 Socket.IO 是一个用来实现实时双向通信的框架,其本质是基于 WebSocket 技术. 我们首先来聊聊 WebSocket 技术,先设想这么一个场景: · 用户小A,打开了某个网站的充值 ...

  5. Socket.io官方聊天室DEMO的学习笔记

    照着Socket.io官方的聊天室代码敲了一遍,遇到了一个奇怪的问题: 每次点击SEND按钮的时候,都会重新刷新页面. 在点击页面的一瞬间,看到了正在加载jquery的提示, 然后以为是jquery用 ...

  6. node express+socket.io实现聊天室

    参照网址:https://www.jb51.net/article/135058.htm https://www.cnblogs.com/limitcode/p/7845168.html https: ...

  7. nodejs之socket.io 聊天实现

    写在前面:最近很火的“996”话题,可谓是引起一片热议,马老师说:能够996应该是幸运的,996是对奋斗者的一种机遇(记得不是很清楚).996缺少的是自己的空闲时间了,当我是空闲的时候偶尔996挺好的 ...

  8. 使用nodejs+express+socketio+mysql搭建聊天室

    使用nodejs+express+socketio+mysql搭建聊天室 nodejs相关的资料已经很多了,我也是学习中吧,于是把socket的教程看了下,学着做了个聊天室,然后加入简单的操作mysq ...

  9. nodejs+express+socket.io

    其实官网文档清楚了  https://socket.io/get-started/chat/ 但是因为之前写的是nodejs+express, socket.io是后加的, 还是有小坑 服务器端: 官 ...

随机推荐

  1. [ActionScript 3.0] 安全沙箱的类型sandboxType,判断当前程序是AIR还是web程序

    表示其中正在运行执行调用的 文件的安全沙箱的类型. Security.sandboxType 具有下列值之一: remote (Security.REMOTE):此文件来自 Internet URL, ...

  2. eclipse中debug

      在需要测试的代码行左侧行号列上双击,生成断点 ,再次双击可以取消断点 如图:   然后右键,选择Debug As-Java Application,(注意,不是选择Run As) 开始调试java ...

  3. SQL查询结果增加序号列

    --sql 2000 ) ,学号 ,姓名 from tb t --sql 2005 select 序号 = row_number() over(order by 学号),学号 ,姓名 from tb ...

  4. ext 3.2 tree 在IE10中点击事件失效的bug

    ext3.2 中的tree在IE中进行兼容性测试,遇到IE10时,无法点击,其他版本的IE(7.8.9.11)均正常.此bug是由于ext-all.js中的getAttributeNS方法不能兼容IE ...

  5. [HackerCup Round1 3] Winning at Sports (动态规划)

    题目链接:https://www.facebook.com/hackercup/problems.php?pid=688426044611322&round=344496159068801 题 ...

  6. js对象3--工厂方法加深引出原型--杂志

    继续上一章的案例讲解: <script type="text/javascript"> function createPreason(name,sex){ //他的怪癖 ...

  7. 什么是动态语言 OC 的runtime

    OC是一门 动态语言. 问题来了.什么是动态语言? 与之相对的静态语言? 学习C++的时候,记得一个名词:“运行时的动态绑定”. 这个是 “多态”的概念. 简单提一下:关键:类指针可以指向本类,或者其 ...

  8. java实验报告三 敏捷开发与XP

    20145306 java 实验三 实验报告 实验内容 1.git下载结对同学的代码 2.修改结对同学的代码 3.实现代码重构 实验步骤 新建存储空间 git下载代码 将修改后的代码上传 上传结果 重 ...

  9. Magento修改css样式

    Magento研究了第四天才开始搞明白怎么运行. 首先对于前端开发来说要修改样式的话需要运行: grunt less:luma 如果提示: 那就说明grunt配置的路径不对,默认是英文的,如果我们用中 ...

  10. Python搭建简易HTTP服务(3.x版本和2.x版本的)

    废话不多说,我们工作时经常会用到需要HTTP服务,如果不想搞那些复杂的Apache.IIS服务器等,这时我们就可以用python帮我们搭建一个简单的服务器.操作如下: 1.下载并安装一个python: ...