关键词:
设置一个简单的HTML网页,提供一个表单和一个信息的列表,通过node.js进行框架的搭建
使用node.js框架
1.新建一个chat-example文件夹,并建立一个package.json文件
{ "name": "socket-chat-example", "version": "0.0.1", "description": "my first socket.io app", "dependencies": {} }
2. 通过npm安装express,并建立index.js文件配置信息
npm install --save express@4.15.2
var app = require('express')(); var http = require('http').Server(app); app.get('/', function(req, res){ res.send('<h1>Hello world</h1>'); }); http.listen(3000, function(){ console.log('listening on *:3000'); });
3.在命令行运行node index.js 你可以得到
在浏览器运行http://localhost:3000你可以得到
4.HTML页面的建立
创建index.html,并修改index.js里面的app.get函数,将路由连接到index.Html
<!doctype html> <html> <head> <title>Socket.IO chat</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { font: 13px Helvetica, Arial; } form { background: #000; padding: 3px; position: fixed; bottom: 0; width: 100%; } form input { border: 0; padding: 10px; width: 90%; margin-right: .5%; } form button { width: 9%; background: rgb(130, 224, 255); border: none; padding: 10px; } #messages { list-style-type: none; margin: 0; padding: 0; } #messages li { padding: 5px 10px; } #messages li:nth-child(odd) { background: #eee; } </style> </head> <body> <ul id="messages"></ul> <form action=""> <input id="m" autocomplete="off" /><button>Send</button> </form> </body> </html>
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
5.整合socket.Io
先安装socket.io
npm install --save socket.io
一般安装完,package.json会自动更新,再编辑index.js文件
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
console.log('a user connected');
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
给index.html里面增加js代码,调取socket和jq框架,进行html和http的连接。
<script src="/socket.io/socket.io.js"></script> <script src="https://code.jquery.com/jquery-1.11.1.js"></script> <script> $(function () { var socket = io(); $('form').submit(function(){ socket.emit('chat message', $('#m').val()); $('#m').val(''); return false; }); }); </script>
Index.js修改获取chat message节点,通过控制台查看message
io.on('connection', function(socket){
socket.on('chat message', function(msg){
console.log('message: ' + msg);
});
});
通过io.emit进行事件发送
io.emit('some event', { for: 'everyone' });
简单起见,我们将发送消息给每个人,包括发送方。
io.on('connection', function(socket){
socket.on('chat message', function(msg){
io.emit('chat message', msg);
});
});
<script> $(function () { var socket = io(); $('form').submit(function(){ socket.emit('chat message', $('#m').val()); $('#m').val(''); return false; }); socket.on('chat message', function(msg){ $('#messages').append($('<li>').text(msg)); }); }); </script>
socket.io入门原理
1.Socket.IO原理node.js提供了高效的服务端运行环境,但是由于浏览器端对HTML5的支持不一,为了兼容所有浏览器,提供卓越的实时的用户体验,并且为程序员提供客户端与服务端一致的编程体验,于是socket.io诞生。Socket.io将Websocket... 查看详情
socket.io入门篇
...mitcode.com/detail/5926e3a056fba70278bf2044.html前言上篇我们介绍了socket.io中room的概念和使用,本篇我们继续深入了解socket.io中namespace(命名空间)的概念和使用。对于namespace的概念只需理解3个地方:1.在不声明新的命名空间情况下,系... 查看详情
socket.io入门
...建一个chat-example文件夹,并建立一个package.json文件{"name":"socket-chat-example","version":"0.0.1","description":"myfirstsocket.ioapp","dependencies":{}}2 查看详情
socket.io入门原理
1.Socket.IO原理node.js提供了高效的服务端运行环境,但是由于浏览器端对HTML5的支持不一,为了兼容所有浏览器,提供卓越的实时的用户体验,并且为程序员提供客户端与服务端一致的编程体验,于是socket.io诞生。Socket.io将Websocket... 查看详情
socket.io入门,简易聊天室(代码片段)
...。所以我们需要一个可以由服务端主动发出的协议,即WebSocket。WebSocket是HTML5新增的一种通信协议,其特点是服务端可以主动向客户端推送信息,客户端也可以主动向服务端发送信息,是真正的双向平等对话,属于服务器推送技... 查看详情
socket.io快入入门案例
socket.io基本介绍创建一个nodejs项目步骤1:创建项目目录步骤2:初始化nodejs项目目录结构命令:npminit-f结果如下:在nodejs项目安装socket.io模块命令:npminstallsokcet.iosocket.io网站:https://socket.io/socket.io快速入门案例客户端:index.html&l... 查看详情
Socket IO 将 TCP 套接字消息输出到网页
】SocketIO将TCP套接字消息输出到网页【英文标题】:SocketIOtooutputaTCPsocketmessagetoawebpage【发布时间】:2018-05-1415:53:02【问题描述】:我正在试验NodeJS和SocketIO。我在这里查看了Socket.IO入门指南:https://socket.io/get-started/chat/。代码如... 查看详情
/socket.io/socket.io.js 中不提供 Socket.io
】/socket.io/socket.io.js中不提供Socket.io【英文标题】:Socket.ioisnotservedin/socket.io/socket.io.js【发布时间】:2012-12-2420:46:28【问题描述】:我已在此处阅读有关我在node.js中的问题的答案,但我的问题仍然存在。在服务器中使用socket.io,... 查看详情
Express.js 'socket.io/socket.io.js 404'
】Express.js\\\'socket.io/socket.io.js404\\\'【英文标题】:Express.js\'socket.io/socket.io.js404\'Express.js\'socket.io/socket.io.js404\'【发布时间】:2017-02-0207:36:19【问题描述】:我正在尝试在使用ExpressJS的网站http://clickthebutton.herokuapp.com上合并实 查看详情
socket.io中文手册socket.io中文文档
socket.io中文手册,socket.io中文文档转载于:http://www.cnblogs.com/xiezhengcai/p/3956401.html服务端io.on(‘connection’,function(socket));//监听客户端连接,回调函数会传递本次连接的socketio.sockets.emit(‘String’,data);//给所有客户端广播消息io.socket 查看详情
socket.io中文手册socket.io中文文档
socket.io中文手册,socket.io中文文档转载于:http://www.cnblogs.com/xiezhengcai/p/3956401.html服务端io.on(‘connection’,function(socket));//监听客户端连接,回调函数会传递本次连接的socketio.sockets.emit(‘String’,data);//给所有客户端广播消息io.socket 查看详情
socket.io中文手册socket.io中文文档
socket.io中文手册,socket.io中文文档转载于:http://www.cnblogs.com/xiezhengcai/p/3956401.html服务端io.on(‘connection’,function(socket));//监听客户端连接,回调函数会传递本次连接的socketio.sockets.emit(‘String’,data);//给所有客户端广播消息io.socket 查看详情
未找到 Socket.io.js(node.js + express + socket.io)
】未找到Socket.io.js(node.js+express+socket.io)【英文标题】:Socket.io.jsnotfound(node.js+express+socket.io)【发布时间】:2014-10-2022:06:51【问题描述】:我一直在检查其他相关答案,例如:node.js/socket.io/socket.io.jsnotfoundSocket.ionotbeingservedbyNode.j... 查看详情
使用androidnodejs和socket.io创建一个实时聊天应用程序(代码片段)
介绍WebSockets是非常漂亮的工具,它允许我们在现代Web应用程序中建立实时通信。事实上,这个机制非常强大,它被用来构建不同类型的应用程序,如实时聊天或通知系统等。在本文中,我们将向您展示如何使... 查看详情
socket.io,io 未定义(JS 错误)
】socket.io,io未定义(JS错误)【英文标题】:socket.io,ioisnotdefined(JSError)【发布时间】:2011-08-0322:25:59【问题描述】:我刚开始使用socket.io,它在客户端页面上给出JS错误io未定义如何解决这个问题?【问题讨论】:【参考方案1】... 查看详情
socket.io 中 io.on 和 socket.on 的区别
】socket.io中io.on和socket.on的区别【英文标题】:Differenceinio.onandsocket.oninsocket.io【发布时间】:2021-09-2612:55:06【问题描述】:此图是否正确表示节点js服务器中的io和套接字?我想说的是......首先我们写-constio=require("socket.io")(8080);... 查看详情
在 socket.io 的情况下出现错误“XMLHttpRequest 无法加载 /socket.io”
】在socket.io的情况下出现错误“XMLHttpRequest无法加载/socket.io”【英文标题】:Gettingerror\'XMLHttpRequestcannotload/socket.io\'incaseofsocket.io【发布时间】:2015-05-0506:25:14【问题描述】:我收到错误消息:“XMLHttpRequestcannotload/socket.io”forsock... 查看详情
( Socket.io ) 一个socket连接多个房间
】(Socket.io)一个socket连接多个房间【英文标题】:(Socket.io)Onesocketconnectionmultiplerooms【发布时间】:2016-12-1405:28:53【问题描述】:我在使用socket.io时遇到问题。我尝试创建一个连接到多个房间的单套接字连接。这是我当前的代码:... 查看详情