关于websocket的代码,实现发送信息和监听信息(前端 后端(node.js))
文件结构
node.js代码
// 需要HTTP 模块来启动服务器和Socket.IO
var http= require('http');
var fs = require('fs');
// 在8080端口启动服务器
var server= http.createServer(function(req, res){
// 发送HTML的headers和message fs.readFile('../index.html',function(error,data){
res.writeHead(200,{'Content-Type':'text/html'});
res.end(data,'utf-8');
});
});
server.listen(8080,function () {
console.log('监听端口是 8080 ,服务已启动');
});
// 创建一个Socket.IO实例,把它传递给服务器
var socket = require('socket.io').listen(server); // 添加一个连接监听器
socket.on('connection', function(client){
// 成功!现在开始监听接收到的消息
console.log("connected");
client.on('message',function(data){
console.log('Received message from client!',data);
client.broadcast.emit('server message',{text:data.text});
}); client.on('disconnect',function(){
//clearInterval(interval);
console.log('Server has disconnected');
});
//模拟触发数据
// var interval= setInterval(function() {
// //client.send('This is a message from the server! ' + new Date().getTime());
// //发送给单个用户
// //client.emit('message',{text:'你上线了'});
// //发送给所有用户
// client.broadcast.emit('message',{text:'你的好某XXX上线了'});
// },5000);
}); index.html页面代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Socket.IO Example</title>
</head>
<body>
<textarea id="msgbox"></textarea>
<input type="button" value="send" id="sendBtn">
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('ws://localhost:8080');
//前端监听信息
socket.on('server message',function(data){
console.log(data.text);
})
//前端发送信息
document.getElementById("sendBtn").onclick = function () {
var info = document.getElementById("msgbox").value;
//console.log(info);
socket.emit("message",{text:info});
}
</script> </body>
</html>
关于websocket的代码,实现发送信息和监听信息(前端 后端(node.js))的更多相关文章
- RabbitMQ 入门系列:8、扩展内容:接收信息时:可否根据RoutingKey过滤监听信息,答案是不能。
系列目录 RabbitMQ 入门系列:1.MQ的应用场景的选择与RabbitMQ安装. RabbitMQ 入门系列:2.基础含义:链接.通道.队列.交换机. RabbitMQ 入门系列:3.基础含义: ...
- c# 获取移动硬盘信息、监听移动设备的弹出与插入事件
原文 http://www.cnblogs.com/coolkiss/p/3328825.html 备忘一下改功能,主要通过WMI来实现,对于监听外接设备的弹出和插入事件一开始使用IntPtr Wnd ...
- iOS 原生模块 给 Javascript(ReactNative) 发送事件 (通知监听)
官方中文文档是这样描述的: 就给我们这几句话 就打发我们了. 按照上面的写法,根本不知道 - (void)calendarEventReminderReceived:(NSNotificatio ...
- vue.js之过滤器,自定义指令,自定义键盘信息以及监听数据变化
一.监听数据变化 1.监听数据变化有两种,深度和浅度,形式如下: vm.$watch(name,fnCb); //浅度 vm.$watch(name,fnCb,{deep:true}); //深度监视 ...
- vue教程2-08 自定义键盘信息、监听数据变化vm.$watch
vue教程2-08 自定义键盘信息 @keydown.up @keydown.enter @keydown.a/b/c.... 自定义键盘信息: Vue.directive('on').keyCode ...
- 使用yield生成器,用Python实现用户对用户输入信息的监听和过滤
# -*- coding:utf-8 -*-'''''''''生成器是一次生成一个值的特殊类型函数.可以将其视为可恢复函数.调用该函数将返回一个可用于生成连续 x 值的生成[Generator],简单 ...
- JavaEE开发之Spring中的事件发送与监听以及使用@Profile进行环境切换
本篇博客我们就来聊一下Spring框架中的观察者模式的应用,即事件的发送与监听机制.之前我们已经剖析过观察者模式的具体实现,以及使用Swift3.0自定义过通知机制.所以本篇博客对于事件发送与监听的底 ...
- Node.js 0.12: 正确发送HTTP POST请求
Node.js 0.12: 正确发送HTTP POST请求 本文针对版本:Node.js 0.12.4 之前写过一篇Node.js发送和接收HTTP的GET请求的文章,今天再写一篇,讲发送POST的请 ...
- Vue+node.js+express+mysql实例---对图书信息进行管理
一个简单的 CURD 实例 ---对图书信息进行管理 目录 1 开发环境 1.1 前端开发环境 1.2 后端开发环境 2 数据库设计和创建 2.1 数据库和表设计 2.2 book 表设计 2.3 s ...
随机推荐
- Laravel 5.4 中的异常处理器和HTTP异常处理实例教程
错误和异常是处理程序开发中不可回避的议题,在本地开发中我们往往希望能捕获程序抛出的异常并将其显示打印出来,以便直观的知道程序在哪里出了问题并予以解决,而在线上环境我们不希望将程序错误或异常显示在浏览器 ...
- notepad++的NppFTP插件远程连接linux操作系统
1.首先要有NppFTP插件,如果没有可以去下面链接或者其他网站下载: https://sourceforge.net/projects/nppftp/files/latest/download ...
- Golang项目的测试实践
Golang项目的测试实践 最近有一个项目,链路涉及了4个服务.最核心的是一个配时服务.要如何对这个项目进行测试,保证输出质量,是最近思考和实践的重点.这篇就说下最近这个实践的过程总结. 测试金字塔 ...
- E20180403-hm
accompany vt. 陪伴,陪同; 附加,补充; 与…共存; 为…伴奏 synchronous adj. 同时存在[发生]的,同步的 asynchronous adj. 异步的; particu ...
- POJ2369【循环节】
题意: 给一个序列,他需要几步就能变成原来的序列. 思路: 那么就是找一下各个循环节(用dfs随便搞了-),求一下最小公倍数就好了. 贴一发挫code- //#include <bits/std ...
- Python基础知识(3)
1:字符串类型转换 num = 100 num2 = " #num是整数类型的值,num2是字符串类型的值,如果把他们两个的类型转换下呢? int(num2) #int 整形成整数 str( ...
- h5-35-ajax轮询实现推送效果
data.txt { "number1":1200, } index.html <!DOCTYPE html> <html> <head> &l ...
- 525 Contiguous Array 连续数组
给定一个二进制数组, 找到含有相同数量的 0 和 1 的最长连续子数组.示例 1:输入: [0,1]输出: 2说明: [0, 1] 是具有相同数量0和1的最长连续子数组. 示例 2:输入: [0,1, ...
- JVM内存配置参数-XMX,-XMS,-XMN的例子
转载:http://www.nowcoder.com/questionTerminal/093bfa948d144ce3b0a68b938ae8b4ec 对于JVM内存配置参数: -Xmx10240m ...
- CF989C A Mist of Florescence
思路: 有趣的构造题. 实现: #include <bits/stdc++.h> using namespace std; ][]; void fillin(int x, int y, c ...