socket.io插件调用的demo
1.利用socket.io插件制作一个聊天框,原理是输入对话,发送到服务,服务器在返回相应的对话,最后插入页面中,时间对话的功能,这里我是使用的node.js搭建的服务器。
附上源码
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<textarea id="all" cols=40 rows=20></textarea>
<br />
<label>Message:</label>
<input id="message" type="text" name="message" cols=120/>
<input id="chat_btn" type="button" value="chat" onclick="chat_fn()" />
<label>NickName:</label>
<input id="nickname" typee="text" name="nickname" />
<input id="chang_name" type="button" value="nickname" onclick="change_nickname()" />
<!--<script src="../../../../npm/node_modules/socket.io/node_modules/socket.io-client/socket.io.js"></script>-->
<script src="http://localhost:8888/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:8888');
socket.on("notice", function(data){
var msg = document.getElementById('all').value;
document.getElementById('all').innerText = msg + "\n" + data.message;
});
function chat_fn(){
var msg = document.getElementById("message").value;
socket.emit("chat", {message: msg});
};
var change_nickname = function(){
var nickname = document.getElementById("nickname").value;
socket.emit('setNickname',{nickname:nickname});
};
</script>
</body>
</html> 服务器代码
/**
* Created by on 2016/7/29.
*/
var app = require('http').createServer(handler)
, io = require('../../../../npm/node_modules/socket.io').listen(app)
, fs = require('fs');
app.listen(8888); function handler (req, res) {
fs.readFile('d://webstrom/yingtou/chart/index.html',
function (err, data) {
if (err) {
res.writeHead(500);
console.log(err);
return res.end('Error loading index4.html');
}
res.writeHead(200);
res.end(data);
});
} io.sockets.on('connection', function (socket) {
socket.on("chat",function(data){
console.log(data);
socket.emit("notice", {message: ":" + data.message});
socket.broadcast.emit("notice", {message: ":" + data.message});
console.log("chat: " + data.message);
});
socket.on("setNickname",function(data){
socket.emit("notice", {message: ":" + data.nickname});
socket.broadcast.emit("notice", {message: ":" + data.nickname});
console.log("name:"+data.nickname)
})
});
socket.io插件调用的demo的更多相关文章
- Socket.io官方聊天室DEMO的学习笔记
照着Socket.io官方的聊天室代码敲了一遍,遇到了一个奇怪的问题: 每次点击SEND按钮的时候,都会重新刷新页面. 在点击页面的一瞬间,看到了正在加载jquery的提示, 然后以为是jquery用 ...
- socket.io简单说明及在线抽奖demo
socket.io简单说明及在线抽奖demo socket.io 简介 Socket.IO可以实现实时双向的基于事件的通信. 它适用于各种平台,浏览器或设备,也同样注重可靠性和速度. socket.i ...
- NodeJs多进程和socket.io通讯-DEMO
一.开启多进程 const os = require('os'); const cp = require('child_process'); const forkList = {}; const fo ...
- socket.io emit callback调用探秘
socket.io https://socket.io/ https://socket.io/docs/ What Socket.IO is Socket.IO is a library that e ...
- Node中的Socket.IO 简单Demo及说明
注:下面Demo的Server和Client都是纯后端. 并没有web页面. Server端代码: var express = require('express'); var app = expres ...
- dotnet调用node.js写的socket服务(websocket/socket/socket.io)
https://github.com/jstott/socketio4net/tree/develop socket.io服务端node.js,.里面有js写的客户端:http://socket.io ...
- 聊天功能插件Socket.io
一.Socket.io是什么 是基于时间的实时双向通讯库 基于websocket协议的 前后端通过时间进行双向通讯 配合express快速开发实时应用 二.Socket.io和ajax区别 基于不同的 ...
- 使用Node.js+Socket.IO搭建WebSocket实时应用
Web领域的实时推送技术,也被称作Realtime技术.这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新.它有着广泛的应用场景,比如在线聊天室.在线客服系统.评论系统.WebIM等. W ...
- socket.io简单入门(一.实现简单的图表推送)
引子:随着nodejs蓬勃发展,虽然主要业务系统因为架构健壮性不会选择nodejs座位应用服务器.但是大量的内部系统却可以使用nodejs试水,大量的前端开发人员转入全堆开发也是一个因素. 研究本例主 ...
随机推荐
- 解决二维数组转为ArrayList集合问题
1.修改前代码块 String[][] str = { { "语文", "100" }, { "英语", "90" }, ...
- 元素定位:selenium消息框处理 (alert、confirm、prompt)
基础普及 alert对话框 .细分三种,Alert,prompt,confirm 1. alert() 弹出个提示框 (确定) 警告消息框 alert 方法有一个参数,即希望对用户显示的文本字符串.该 ...
- [BZOJ3172]单词
3172: [Tjoi2013]单词 Time Limit: 10 Sec Memory Limit: 512 MB Description 某人读论文,一篇论文是由许多单词组成.但他发现一个单词会 ...
- 【bzoj3170】[Tjoi2013]松鼠聚会
3170: [Tjoi2013]松鼠聚会 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1670 Solved: 885[Submit][Statu ...
- 【bzoj4571】美味
Portal -->bzoj4571 Solution emmm持续智力康复.. 虽然说因为统计的是加上\(x\)的跟\(b\)异或的最大值所以可持久化trie用不了了 但是按位贪心的思想还 ...
- Codeforces Round #336 (Div. 2)B 暴力 C dp D 区间dp
B. Hamming Distance Sum time limit per test 2 seconds memory limit per test 256 megabytes input stan ...
- java 注解详解
先引用一下百度百科的名词解析: 定义:注解(Annotation),也叫元数据.一种代码级别的说明.它是JDK1.5及以后版本引入的一个特性,与类.接口.枚举是在同一个层次.它可以声明在包.类.字段. ...
- phpmyadmin 登录时间修改
登录后1440秒未活动后总是自动退出,一天还要登录多次,终于有时间来解决这个问题了,感觉是session超时,结果在网上search了下,找到解决办法啦,哈哈哈,在此做个笔记:phpmyadmin在使 ...
- Eclipse 重构功能的使用与重构快捷键
重构是什么? 在代码写好之后改进它的设计. 重构分类:物理结构.类层次结构.类内部结构. 名称 快捷键 直译 作用范围 描述 Rename Alt + Shift + R 可以对任意变量.类. ...
- codevs 2488 绿豆蛙的归宿
2488 绿豆蛙的归宿 http://codevs.cn/problem/2488/ 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 黄金 Gold 题目描述 Descrip ...