node(websocket)

websocket原本是html5下实现长链接的一个特性,当前已被众多浏览器支持。

在websocket协议中,首先通过http交换一次握手,明确将协议升级至websocket。同时建立一个TCP通道,以frame帧的方式交换数据。

在node环境下基本功能实现如下:

首先npm install socket.io

1、app.js,初始化socket.io

var srv = http.createServer(app).listen(app.get(‘port‘), function(){
  console.log(‘Express server listening on port ‘ + app.get(‘port‘));
});

var io     = require(‘socket.io‘).listen(srv);
server.initServer(io);

2、server.js实现服务器端代码

exports.initServer = function(io){

    io.on(‘connection‘,function(socket){
        console.log(‘connection‘);
        socket.on(‘disconnect‘,function(msg){
            console.log(‘disconnect‘);
        });

        socket.on(‘msg1‘,function(msg){
            console.log(msg);
            socket.emit(‘back‘,{key:‘fredric&sinny‘});
        });
    });
}

3、客户端代码

<!DOCTYPE html>
<html>
<head>
<script src = "socket.io.js"></script>
<script>
    var socket = io.connect(‘http://localhost:3000‘);

    function sendmsg(){
        console.log(‘start sendmsg‘);
        socket.emit(‘msg1‘,{key:‘fredric‘});
    }

    socket.on(‘back‘,function(msg){
        alert(msg.key);
    });

</script>
</head>
<body>

<button type="button" onclick=‘sendmsg()‘>Click Me!</button>

</body>
</html>

浏览器端调试网络接口如下:

时间: 2025-01-12 14:27:37

node(websocket)的相关文章

php+websocket搭建简易聊天室实践

1.前言 公司游戏里面有个简单的聊天室,了解了之后才知道是node+websocket做的,想想php也来做个简单的聊天室.于是搜集各种资料看文档.找实例自己也写了个简单的聊天室. http连接分为短连接和长连接.短连接一般可以用ajax实现,长连接就是websocket.短连接实现起来比较简单,但是太过于消耗资源.websocket高效不过兼容存在点问题.websocket是html5的资源 如果想要详细了解websocket长连接的原理请看https://www.zhihu.com/ques

实现单台测试机6万websocket长连接

本文由作者郑银燕授权网易云社区发布. 本文是我在测试过程中的记录,实现了单台测试机发起最大的websocket长连接数.在一台测试机上,连接到一个远程服务时的本地端口是有限的.根据TCP/IP协议,由于端口是16位整数,也就只能是0到 65535,而0到1023是预留端口,所以能分配的端口只是1024到65534,也就是64511个.也就是说,一台机器一个IP只能创建六万多个websocket长连接. 一.客户端参数调优 本文采用的测试机分别为黑mac系统和linux系统(由于黑mac机器本身性

Laravel事件广播

依赖 laravel(predis). redis. nodejs(ioredis,socket.io)  1.修改config\app.php providers数组   添加    'Illuminate\Broadcasting\BroadcastServiceProvider', 2.修改广播驱动方式为 config\broadcasting.php 'default' => env('BROADCAST_DRIVER', 'redis'), 改为redis驱动 使用redis作为php

postMessage和sendMessage

参考:http://www.cnblogs.com/giggle/p/5350288.html(浅谈webWorker) http://blog.csdn.net/zha_zi/article/details/41677033 HTML5 中 postMessage sendMessage 用法 Web Workers----工作线程 Html5对多线程的支持.在 HTML5 中提出了工作线程(Web Workers)的概念.用于解决页面之间数据处理的多线程,加快数据处理.如同java中的Thr

面向Web Cloud的HTML5 App开发实战:Browser&amp;HTML5&amp;CSS3&amp;PhoneGap&amp;jQuery Mobile&amp; WebSocket&amp;Node.js(2天)

如何理解Android架构设计的初心并开发出搭载Android系统并且具备深度定制和软硬整合能力特色产品,是本课程解决的问题. 课程以Android的五大核心:HAL.Binder.Native Service.Android Service(并以AMS和WMS为例).View System为主轴,一次性彻底掌握Android的精髓. 之所以是开发Android产品的必修课,缘起于: 1,     HAL是Android Framework&Application与底层硬件整合的关键技术和必修技

Node.js Websocket 区分不同的用户

实现ws://serverIP:port/:param1/:param2 .通过param1,param2来管理不同的ws回话,以便实现群发和指定用户的消息推送 npm install ws --save node server.js server.js var webSocketServer = new (require('ws')).Server({port: (process.env.PORT || 5000)}), webSockets = {} // userID: webSocket

node.js实现WebSocket

最近在学习“HTML5游戏开发实战”,其中第8章内容是使用WebSocket来构建多人游戏---<你画我猜>.然而在实现过程中,却一直出错: 客户端请求时,服务器端会报错并终止: 而浏览器端也会出错: 服务器代码: var ws = require(__dirname + '\\lib\\ws\\server'); var server = ws.createServer(); server.addListener("connection",function(conn){

WebSocket+node.js创建即时通信的Web聊天服务器

1.使用nodejs-websocket nodejs-websocket是基于node.js编写的一个后端实现websocket协议的库, 连接:https://github.com/sitegui/nodejs-websocket. (1)安装 在项目目录下通过npm安装:npm install nodejs-websocket (2)创建服务器 //引入nodejs-websocket var ws = require("nodejs-websocket"); //调用creat

基于Node.js + socket.io实现WebSocket的聊天DEMO

原文摘自我的前端博客,欢迎大家来访问 http://hacke2.github.io 简介 最近看Node.js和HTML5,练手了一个简易版的聊天DEMO,娱乐一下 为什么需要socket.io? node.js提供了高效的服务端运行环境,但是由于浏览器端对HTML5的支持不一, 为了兼容所有浏览器,提供卓越的实时的用户体验,并且为程序员提供客户端与服务端一致的编程体验, 于是socket.io诞生. 简答来说socket.io具体以下特点: 1.socket.io设计的目标是支持任何的浏览器