ws

How to run a websocket server on ws and wss at same time that they both communicate or sync data with each other? Or WSS on HTTP and WS on HTTPS?

早过忘川 提交于 2021-02-08 08:21:33
问题 My requirement is this that if some users connect through WS or WSS they can communicate with each other.Now if i run node server for WSS it does not run over HTTP and if run for WS then it does not Connect on HTTPS .Any solution? 回答1: After a long research at last i find this solution and is working for me as i was requiring.This is my sever.js file. /** Before running: > npm install ws Then: > node server.js > open http://localhost:8080 in the browser */ const http = require('http'); const

Multiple socket.io servers sharing a single HTTP/S server

萝らか妹 提交于 2020-06-17 03:50:07
问题 With ws, Node.js WebSocket library, it is possible to have multiple servers sharing a single HTTP/S server. Is it possible to do the same with socket.io? I need to have two WebSocket servers on the same HTTP server, one for socket.io and another one for Apollo subscriptions. I can set up Apollo subscription server with a Websocket server but not for socket.io, socket.io only accepts HTTP server. I thought in doing something like this: const socketioWsS = new WebSocket.Server({ noServer: true

使用 Go 语言创建 WebSocket 服务

不打扰是莪最后的温柔 提交于 2020-04-02 16:31:12
感谢参考原文- http://bjbsair.com/2020-04-01/tech-info/18504.html 今天介绍如何用 Go 语言创建 WebSocket 服务,文章的前两部分简要介绍了 WebSocket 协议以及用 Go 标准库如何创建 WebSocket 服务。第三部分实践环节我们使用了 gorilla/websocket 库帮助我们快速构建 WebSocket 服务,它帮封装了使用 Go 标准库实现 WebSocket 服务相关的基础逻辑,让我们能从繁琐的底层代码中解脱出来,根据业务需求快速构建 WebSocket 服务。 WebSocket介绍 WebSocket 通信协议通过单个 TCP 连接提供全双工通信通道。与 HTTP 相比, WebSocket 不需要你为了获得响应而发送请求。它允许双向数据流,因此您只需等待服务器发送的消息即可。当 Websocket 可用时,它将向您发送一条消息。对于需要连续数据交换的服务(例如即时通讯程序,在线游戏和实时交易系统), WebSocket 是一个很好的解决方案。 WebSocket 连接由浏览器请求,并由服务器响应,然后建立连接,此过程通常称为握手。 WebSocket 中的特殊标头仅需要浏览器与服务器之间的一次握手即可建立连接,该连接将在其整个生命周期内保持活动状态。 WebSocket 解决了许多实时 Web

Apache 配置 WebSocket 协议

梦想的初衷 提交于 2020-03-21 22:49:10
本文使用 http proxy 方式 实现 apache 支持 WebSocket 请求(JK 使用的 ajp 协议不能支持websocket) 通过 apache 访问 后端 tomcat上的 websocket 服务,需要使用 mod_proxy.so 和 mod_proxy_wstunnel.so两个库文件(在apache2.4 安装目录下已存在,放开httpd.conf文件中的注释即可使用),如果应用中需要通过http协议访问某些页面(如index页面)则需要添加使用 mod_proxy_http.so,如下: LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so (可选) LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so 最后面添加: ProxyPass /web/websocket/ ws://tommcatIP:8080/web/websocket/ ProxyPass / http://127.0.0.1:8080/ (可选) 我的apache端口使用的是 80,所以访问 http://127.0.0.1:80/web/ 就出现了 index

workerman实现简单弹幕的方法

拈花ヽ惹草 提交于 2020-03-17 15:00:55
弹幕[dàn mù] (barrage),中文流行词语,指的是在网络上观看视频时弹出的评论性字幕。下面我们就来看一下使用workerman实现简单弹幕的方法。 怎么从一名码农成为架构师的必看知识点:目录大全(持续更新)50W年薪挑战! ​ php代码: <?php use Workerman\Worker; require_once '../Autoloader.php';//注意 这里要看你的workerman里的这个文件在哪 然后在进行修改 $global_uid = 0; // 当客户端连上来时分配uid,并保存连接,并通知所有客户端 function handle_connection($connection) { global $text_worker, $global_uid; // 为这个链接分配一个uid $connection->uid = ++$global_uid; foreach ($text_worker->connections as $conn) { $conn->send("user[{$connection->uid}] online"); } } // 当客户端发送消息过来时,转发给所有人 function handle_message($connection, $data) { global $text_worker; foreach (

websocket的重连

牧云@^-^@ 提交于 2020-03-15 09:31:37
在做图片的传输时,会经常的断开和卡顿,下面重连的方法解决了经常断开的问题 // 图像预览 websocket var ws; // 是否有ajax的返回消息时调用, 如果有返回值 -> 值为true, 执行重连, 否则 -> 为 false,就不会执行重连 var flag; // 图片 var img = ""; function createWebSocket(url) { flag = true; try {     // 如果websocket不存在的时候 实例化websocket,并且调用websocket的函数 if (ws == null || typeof ws !== WebSocket) { ws = new WebSocket(url); initEventHandle(); } else { reconnect(url); } } catch (e) { $('#image').attr('src', './images/480x270.png'); } } // 判断是否有图像传回来 var hasImage = false; function initEventHandle() { ws.onclose = function (event) { if (flag) { reconnect(wsUrl); } else { } }; ws.onerror

小程序开发之搭建WebSocket的WSS环境(Apache+WorkerMan框架+PHP)

烂漫一生 提交于 2020-03-10 16:21:16
最近公司的一个IoT项目用到了小程序的WSS协议环境,现在把整个的搭建开发过程分享给大家。 这里我们用的是WorkerMan框架,服务器是CentOS,Web服务器是Apache,开发语言是PHP。 因为WSS是WebSocket和SSL的结合,所以需要提前准备好对应域名的SSL证书,一般情况下是三个证书文件,比如下面: SSLCertificateFile "/www/wwwroot/test.crt" SSLCertificateKeyFile "/www/wwwroot/test.key" SSLCertificateChainFile "/www/wwwroot/test-ca-bundle.crt" 好,开始吧! 搭建可以端口访问的WSS协议长连接环境 我以端口号39001(必须接入防火墙白名单)为例,代码如下: 1 <?php 2 require_once __DIR__ . '/Workerman/Autoloader.php'; 3 use Workerman\Worker; 4 5 // 证书最好是申请的证书 6 $context = array( 7 8 'ssl' => array( 9 // 请使用绝对路径 10 'local_cert' => '/www/wwwroot/test.pem', // 也可以是crt文件 11 'local_pk' => '

nodejs-websocket初使用

Deadly 提交于 2020-03-09 05:00:36
主要实现一个客户端给服务端发送消息,服务端再推送给客户端,其中客户端是有多个 首先来看一下效果 具体代码实现: 服务端: 首先需要安装依赖 npm i nodejs-websocket -S 然后新建一个app.js文件 app.js代码如下: const ws = require('nodejs-websocket');//引入websocketconst prot = 8088; const server = ws.createServer(connection => { // console.log('有一名用户连接进来了...') connection.on("text", function (str) { // console.log('我来接收客户端发过来的消息' + str) // connection.sendText(str);//返回给客户端的数据 server.connections.forEach(function (conn) { conn.sendText(str)//返回给所有客户端的数据(相当于公告、通知) }) }) //监听关闭 connection.on("close", function (code, reason) { console.log("Connection closed") }) //监听异常 connection.on(

SpringBoot集成WebSocket

懵懂的女人 提交于 2020-03-02 13:20:06
什么是WebSocket? WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。 为什么需要 WebSocket? 初次接触 WebSocket 的人,都会问同样的问题:我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处? 答案很简单,因为 HTTP 协议有一个缺陷:通信只能由客户端发起,HTTP 协议做不到服务器主动向客户端推送信息。 举例来说,我们想要查询当前的排队情况,只能是页面轮询向服务器发出请求,服务器返回查询结果。轮询的效率低,非常浪费资源(因为必须不停连接,或者 HTTP 连接始终打开)。因此WebSocket 就是这样发明的。 maven依赖 SpringBoot2.0对WebSocket的支持简直太棒了,直接就有包可以引入 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> WebSocketConfig 启用WebSocket的支持也是很简单,几句代码搞定 import org.springframework.context.annotation