websocket客户端向服务器发送信息,WebSocket服务端发消息给客户端,浏览器收到消息就关闭了...

自己按照 Websocket 的 文档写的, 浏览器每次连接上, 一收到消息就断开了

报错:

WebSocket connection to 'ws://192.168.1.248:2051/' failed: A server must not mask any frames that it sends to the client.

但是 内容根本就没有mask

然后连网上别的websocket服务器,连上发消息正常; 然后直接对消息抓包 过来原文发送,还是报这个错误;

Wireshark 抓包的时候都能识别,但是 浏览器就是一收到就报错断开,,,快崩溃了了~~~~

下面是发送的数据:

char tt[250]={0x81,0x53,0x7b,0x22,0x6a,0x73,0x6f,0x6e,0x72,0x70

,0x63,0x22,0x3a,0x22,0x32,0x2e,0x30,0x22,0x2c,0x22,0x65,0x72,0x72,0x6f,0x72,0x22

,0x3a,0x7b,0x22,0x63,0x6f,0x64,0x65,0x22,0x3a,0x2d,0x31,0x30,0x30,0x30,0x30,0x32

,0x2c,0x22,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x22,0x3a,0x22,0x54,0x65,0x73,0x74

,0x5f,0x56,0x61,0x6c,0x75,0x65,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x76,0x61

,0x6c,0x69,0x64,0x20,0x6a,0x73,0x6f,0x6e,0x22,0x7d,0x7d,0};

WebSocket是一种在单个TCP连接上进行全双工通信的协议,它允许服务器主动向客户端推送信息。创建WebSocket客户端服务端来建立长连接,通常涉及以下步骤: 1. **WebSocket服务端创建**: - 首先,需要选择一个支持WebSocket服务器端语言和框架,比如Node.js、Java、Python等。 - 在服务器端,使用相应的库或框架提供的API创建WebSocket服务,监听一个端口来接收来自客户端的连接请求。 - 一旦有客户端连接,服务器就可以根据需要向客户端发送消息。 2. **WebSocket客户端创建**: - 在客户端(例如浏览器中的JavaScript),同样需要使用WebSocket相关的API来建立与服务端的连接。 - 通过指定服务端WebSocket URL来初始化一个WebSocket连接。 - 客户端连接建立后,可以监听服务端发来的消息,并可以发送消息服务端。 3. **消息的发送与接收**: - 在服务端客户端建立连接后,双方都可以发送消息。 - 客户端可以使用`socket.send()`方法发送消息服务端服务端也可以使用类似的方法发送消息客户端。 - 双方都需要监听消息事件来接收对方发送过来的数据。 4. **连接的关闭**: - 当不再需要连接时,可以通过调用`socket.close()`方法来关闭WebSocket连接。 下面是一个简单的示例: **Node.js WebSocket服务端示例代码**: ```javascript const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: 8080 }); wss.on('connection', function connection(ws) { ws.on('message', function incoming(message) { console.log('received: %s', message); ws.send('echo: ' + message); }); ws.send('Hello Client!'); }); ``` **HTML5 WebSocket客户端示例代码**: ```html <!DOCTYPE html> <html> <head> <title>WebSocket Client</title> </head> <body> <script> var socket = new WebSocket('ws://localhost:8080'); socket.onmessage = function(event) { var message = event.data; console.log('received: %s', message); }; socket.onopen = function(event) { socket.send('Hello Server!'); }; </script> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值