`
biyeah
  • 浏览: 201356 次
  • 来自: ...
社区版块
存档分类
最新评论

用socket.io实现WebSocket的一个简单例子

阅读更多
用socket.io实现WebSocket的一个简单例子

客户端代码:
<html>
<head>
    <title></title>
    <script src="../js/socket.io.client.js"></script>
    <script type="text/javascript">
        function doit() {
            var socket = io.connect('http://localhost');
            socket.on('news', function (data) {//接收到服务器发送过来的名为'new'的数据
                console.log(data.hello);//data为应服务器发送过来的数据。
                socket.emit('my new event', { my:'new data' });//向服务器发送数据,实现双向数据传输
            });
            socket.on('other', function (data) {//接收另一个名为'other'数据,
                console.log(data.hello);
                socket.emit('event1', { my:'other data' });
            });
        }
    </script>
</head>
<body>
<button id='btn' onclick="doit()">click me</button>
</body>
</html>

在chrome,Crtl+Shift+j打开终端,可看到输出结果。
socket.io.client.js可以https://github.com/LearnBoost/socket.io-client下载到本地,在<script src="..">指向本机的js库。

服务器用nodejs实现
代码
var http= require('http'), io= require('socket.io'), express= require('express');
var app = express.createServer(), io = io.listen(app);

app.listen(80);

io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });//监听,一旦客户端连接上,即发送数据,第一个参数'new'为数据名,第二个参数既为数据
  socket.on('my other event', function (data) {//捕获客户端发送名为'my other event'的数据
    console.log(data.my);
  });

  socket.emit('other', { hello: 'other world' });//发送另一个数据
  socket.on('evnet1', function (data) {//捕获另外一个数据
    console.log(data.my);
  });
});

测试结果,客户端可正常显示
引用
world
other world


服务器端显示结果:
引用
C:\java\Nodejs>node server2.js
   info  - socket.io started
   debug - client authorized
   info  - handshake authorized 15551970622100878177
   debug - setting request GET /socket.io/1/websocket/15551970622100878177
   debug - set heartbeat interval for client 15551970622100878177
   debug - client authorized for
   debug - websocket writing 1::
   debug - websocket writing 5:::{"name":"news","args":[{"hello":"world"}]}
   debug - websocket writing 5:::{"name":"other","args":[{"hello":"other world"}
]}
   debug - emitting heartbeat for client 15551970622100878177
   debug - websocket writing 2::
   debug - set heartbeat timeout for client 15551970622100878177
   debug - got heartbeat packet
   debug - cleared heartbeat timeout for client 15551970622100878177
   debug - set heartbeat interval for client 15551970622100878177
^C
分享到:
评论
3 楼 赤道螞蟻 2014-07-22  
如果是數據庫有定時任務,定時更新表的數據。 表中數據變化時,主動發消息給web頁面, 該怎麼做呢??
2 楼 cwalet 2013-05-10  
在世界的中心呼喚愛 写道
提示找不到 express

npm install express
另外,有些IO API已经deprecated,改成:
var http= require('http'), io= require('socket.io');
var app = http.createServer(), io = io.listen(app);
app.listen(81);

这样就可以不必引用express
1 楼 在世界的中心呼喚愛 2013-01-22  
提示找不到 express

相关推荐

    Socket.IO demo程序

    Socket.IO 是一个实时应用框架,它为开发人员提供了一种简单的方式来实现在Web上进行双向通信,即服务器和客户端之间的实时、低延迟的数据传输。在Java环境中,我们可以使用Socket.IO的Java客户端库来构建这样的应用...

    socket.io-android-chat,一个简单的socket.io和android聊天演示.zip

    Socket.IO 是一个实时应用程序框架,它为开发人员提供了一种简单的方式来实现在Web上进行双向通信,即服务器和客户端可以即时交换数据。这个名为“socket.io-android-chat”的项目是一个使用Socket.IO在Android平台...

    flask+socket.io 实时dashboard 可接stormMqtt

    标题中的“flask+socket.io 实时dashboard 可接stormMqtt”揭示了这个项目是用Python构建的一个实时数据可视化 dashboard,它结合了Flask框架、Socket.IO库以及与Storm MQTT的集成。让我们深入探讨这些关键组件及其...

    socket.io-cookie:用于socket.io的Cookie解析器中间件

    socket.io-cookie 用于socket.io的Cookie解析器中间件 例子 var cookieParser = require ( 'socket.io-cookie' ) ; var server = require ( 'http' ) . Server ( ) ; var io = require ( 'socket.io' ) ( server )...

    socketTest.zip

    在这个例子中,开发者可能会创建一个简单的聊天应用或者实时数据更新的应用,通过WebSocket或Socket.IO实现客户端与服务器的实时交互。通过分析"socketTest"文件夹中的代码,我们可以更深入地了解WebSocket和Socket....

    iOS + node.js使用Socket.IO框架进行实时通信示例

    Socket.IO是一个基于WebSocket的实时通信库,在主流平台都有很好的支持,此文主要是通过一个小例子来演示Socket.IO的使用。 基础环境搭建 新建一个文件夹(JS工程),创建一个package.json,复制以下内容并保存。 ...

    C#与nodejs socketio 互传

    socketio4net是一个.NET框架的Socket.IO客户端实现,它允许C#应用程序连接到使用Socket.IO的服务器。 1. **C#客户端集成socketio4net**: - 首先,你需要在C#项目中添加socketio4net的NuGet包。 - 创建一个...

    redux.io:Socket.IO的Redux绑定

    redux.io 用于Socket.io的Redux / React绑定 这仍然是Alpha :red_exclamation_mark: 请不要在生产中使用。... 唯一的要求是将socket.io传递给redux.io reducer作为第一个参数。 import { createStore ,

    socket -- io 小例子

    Socket.IO 是一个实时应用程序框架,它为Web开发者提供了一种简单的方式来实现实时、双向通信。这个框架在Node.js环境中运行,结合了WebSocket和其他多种浏览器兼容的通信协议,以克服WebSocket在某些环境下的局限性...

    nodejs实现的websocket案例

    以上是一个基础的Node.js和Socket.IO实现的WebSocket聊天应用。在实际项目中,你可能需要处理更多复杂情况,如认证、房间管理、错误处理等。`socket.io`库提供了丰富的API和中间件机制,可以方便地扩展和定制你的...

    socket.io-example

    这个"socket.io-example"项目是一个使用Socket.IO构建的简单聊天应用示例,非常适合初学者理解如何在实际场景中运用Socket.IO。 首先,让我们详细了解一下Socket.IO的核心特性: 1. **实时性**:Socket.IO支持即时...

    基于socket.io+express实现多房间聊天

    在本文中,我们将深入探讨如何使用socket.io和express构建一个多房间聊天应用程序。Socket.IO是一个强大的库,它允许开发者在Web应用中实现实时双向通信,而无需关心浏览器兼容性问题。它通过WebSocket、htmlfile、...

    flutter-socket.io-server:套接字快速基本服务器

    “flutter-socket.io-server”项目的目标是为Flutter开发者提供一个易于使用的后端服务器,该服务器能够与Flutter前端应用无缝对接,实现实时通信。由于它是基于JavaScript构建的,因此开发人员可以利用Node.js的...

    socket.io:用socket.io创建一条消息并表达

    总结一下,我们使用Socket.IO创建了一个简单的消息传递应用,其中包括一个Node.js服务器,使用Express作为web服务器框架,并通过Socket.IO实现了实时双向通信。客户端是一个简单的HTML页面,用户可以通过输入框发送...

    node.js websocket

    这个库提供了一个简单易用的API,用于创建WebSocket服务器和客户端。安装`ws`库可以使用npm(Node.js包管理器): ``` npm install ws ``` 3. 使用`ws`库创建WebSocket服务器 创建一个WebSocket服务器的基本步骤...

    Nodejs+Socket.io实现通讯实例代码

    在本文中,我们将探讨如何使用Node.js和Socket.io库来实现实时双向通信。Socket.io是一个流行的JavaScript库,它允许开发者创建实时、低延迟的Web应用程序,特别适合聊天应用、协作工具或实时游戏等场景。下面我们将...

    marty-socket.io-state-source:Marty Socket.IO状态源-Source mart

    在现代Web开发中,实时通信已经成为不可或缺的一部分,WebSocket协议的出现使得双向通信成为可能,而Socket.IO则是在WebSocket之上建立的一个强大的实时应用框架,它提供了更加灵活和可靠的实时通信解决方案。...

    socketio-demo:在线socket.io

    Socket.IO 是一个实时应用框架,它为开发人员提供了一种简单的方式来实现实时、双向通信。这个"socketio-demo"项目显然是一个示例,用于演示如何在Node.js环境中使用Socket.IO进行在线通信。下面我们将深入探讨...

    demo-angular-socket.io:使用 AngularJS 和 Socket.IO

    `AngularJS` 是一个强大的前端MVC框架,而`Socket.IO` 则是一个为实时应用提供双向通信的库。`AngularJS` 的数据绑定和模块化特性与`Socket.IO` 的实时通信能力相结合,可以创建出高度交互的Web应用程序。本文将深入...

    chatApp:chatApp使用Socket.io

    在这个项目中,我们将会深入探讨如何使用JavaScript和Socket.IO来创建一个简单的聊天应用程序。 首先,我们需要理解Socket.IO的工作原理。Socket.IO基于WebSocket协议,但同时提供了对其他传输方式的备份,如...

Global site tag (gtag.js) - Google Analytics