websocket

websocket

68 人关注该话题

使用wss连接之后php报SSL错误 websocket ssl加密

GatewayWorker walkor 回复了问题 • 2 人关注 • 1 个回复 • 193 次浏览 • 2018-07-03 09:58

php后端控制器可以作为用户端直接通过Socket连接远程WebSocket服务端吗? websocket

Workerman原理 mdx2007 回复了问题 • 2 人关注 • 1 个回复 • 211 次浏览 • 2018-05-25 17:35

使用AsyncTcpConnection作为websocket客户端时出现报错 websocket

Workerman walkor 回复了问题 • 2 人关注 • 1 个回复 • 350 次浏览 • 2018-03-17 23:46

本地用js访问服务器GatewayWorker报错 websocket

websocket walkor 回复了问题 • 3 人关注 • 1 个回复 • 355 次浏览 • 2018-02-10 14:49

关于Gateway和页面js连接wss问题 ssl加密 websocket

GatewayWorker xiuwang 回复了问题 • 2 人关注 • 2 个回复 • 640 次浏览 • 2017-09-18 20:30

GatewayWorker 如何在本地搭建wss 。 websocket

workerman-chat聊天室 walkor 回复了问题 • 2 人关注 • 1 个回复 • 790 次浏览 • 2017-07-11 10:05

你好,请教下 链接不上的问题 websocket

Workerman yuanfang 回复了问题 • 2 人关注 • 3 个回复 • 3549 次浏览 • 2018-06-27 17:20

Two connections have the same unique ID? How do I identify them? websocket

Workerman t182848232 回复了问题 • 2 人关注 • 1 个回复 • 394 次浏览 • 2017-01-30 12:04

ws:127.0.0.1:80/?iid=11这种webscoet地址可以获取后面的参数么 websocket

GatewayWorker walkor 回复了问题 • 3 人关注 • 1 个回复 • 713 次浏览 • 2016-12-10 21:31

后端通过websocket协议直接传数据给ws服务器? websocket

websocket walkor 回复了问题 • 2 人关注 • 1 个回复 • 4210 次浏览 • 2016-12-09 09:44

使用websocket需要弄自定义协议么? websocket

GatewayWorker six 回复了问题 • 2 人关注 • 1 个回复 • 714 次浏览 • 2016-11-25 16:17

workerman websocket demo链接不上是那些原因啊 websocket

websocket latin 回复了问题 • 3 人关注 • 1 个回复 • 462 次浏览 • 2016-11-19 19:45

nginx代理转发wss协议 websocket ssl加密

workerman-chat聊天室 walkor 回复了问题 • 2 人关注 • 1 个回复 • 2722 次浏览 • 2016-09-19 13:40

聊天室框架中的getway出现error opcode 7 and close websocket connection.无法连接 websocket

workerman-chat聊天室 walkor 回复了问题 • 4 人关注 • 11 个回复 • 2381 次浏览 • 2016-09-12 19:53

ie8连不上workerman,错误:WebSocket未定义 websocket

Workerman walkor 回复了问题 • 2 人关注 • 1 个回复 • 605 次浏览 • 2016-08-31 17:24

websocket客户端问题 websocket

websocket walkor 回复了问题 • 2 人关注 • 1 个回复 • 2709 次浏览 • 2016-08-25 00:07

workerman 的websocket协议实现 有cookie ,这个可以用来实现session吗?有什么注意点吗? websocket cookie session

Workerman walkor 回复了问题 • 3 人关注 • 1 个回复 • 1045 次浏览 • 2016-08-15 17:33

The connection to ws://myhost.com:7272/ was interrupted while the page was loading. websocket 报错

workerman-chat聊天室 walkor 回复了问题 • 2 人关注 • 2 个回复 • 478 次浏览 • 2016-08-10 13:58

怎么在onConnect回调中获取url的参数? websocket url参数

GatewayWorker walkor 回复了问题 • 2 人关注 • 1 个回复 • 952 次浏览 • 2016-02-24 09:23

使用阿里云 + workerman,H5 websocket每隔一段时间会收到大写的PING字符串是怎么回事? websocket 心跳

Workerman walkor 回复了问题 • 2 人关注 • 1 个回复 • 1170 次浏览 • 2016-02-21 15:23

workerman-chat 在平板上拉取不到聊天记录是什么原因 聊天室 websocket PHPSocket.IO

workerman-chat聊天室 walkor 回复了问题 • 2 人关注 • 9 个回复 • 945 次浏览 • 2016-01-19 10:39

聊天服务器测试的问题 聊天室 协议 websocket

workerman-chat聊天室 walkor 回复了问题 • 1 人关注 • 1 个回复 • 977 次浏览 • 2016-01-11 16:53

ie8是不是连不上websocket websocket

Workerman walkor 回复了问题 • 2 人关注 • 1 个回复 • 2455 次浏览 • 2016-01-07 15:56

问一个安全性问题 websocket 安全 跨域

Workerman aguai 回复了问题 • 3 人关注 • 6 个回复 • 1231 次浏览 • 2016-01-05 15:52

请问WEBSOCKET如何获取域名后面的路径 ? websocket

websocket walkor 回复了问题 • 1 人关注 • 5 个回复 • 1044 次浏览 • 2016-01-04 17:20

window平台好像不支持websocket协议吧 websocket

websocket tongxinmao 回复了问题 • 2 人关注 • 2 个回复 • 960 次浏览 • 2015-12-29 15:47

websocket数据格式如何转换为socket数据 websocket

websocket tongxinmao 回复了问题 • 2 人关注 • 2 个回复 • 1442 次浏览 • 2015-12-29 14:38

关于Socket和WebSocket互相通信的疑问 IOS websocket

Workerman walkor 回复了问题 • 4 人关注 • 4 个回复 • 6404 次浏览 • 2015-12-29 14:37

退出登录,关闭当前浏览器socket连接 websocket

Workerman walkor 回复了问题 • 2 人关注 • 1 个回复 • 886 次浏览 • 2015-12-24 16:35

websocket传输二进制要怎么设置协议头的一个标记位 websocket 二进制

websocket redyn 回复了问题 • 1 人关注 • 3 个回复 • 2263 次浏览 • 2015-12-01 15:54

PHP 的socket连接 workerman 的websocket 问题! websocket

websocket walkor 回复了问题 • 1 人关注 • 1 个回复 • 1741 次浏览 • 2015-11-26 13:35

windows下并发问题 websocket windows

Workerman walkor 回复了问题 • 2 人关注 • 6 个回复 • 3073 次浏览 • 2016-02-02 14:09

error opcode 11 and close websocket connection websocket cocos2d

websocket walkor 回复了问题 • 1 人关注 • 1 个回复 • 1472 次浏览 • 2015-11-10 10:17

IE兼容socket 路由重写问题 websocket

Workerman 13141223060 回复了问题 • 2 人关注 • 10 个回复 • 1145 次浏览 • 2015-10-15 11:04

workerman-chat 聊天室 websocket

websocket walkor 回复了问题 • 1 人关注 • 1 个回复 • 608 次浏览 • 2015-09-15 21:27

ie8 不好使,好像支持WBESOKET不是很好 ,怎么能切换到falsh模式? websocket

Workerman VC815 回复了问题 • 2 人关注 • 2 个回复 • 805 次浏览 • 2015-08-08 16:12

发现一些三星手机的自带浏览器无法连接websocket服务器 websocket app

Workerman walkor 回复了问题 • 2 人关注 • 1 个回复 • 2075 次浏览 • 2015-07-22 12:47

更多...
1

赞同来自: kaifengjk

websocket协议中在协议头中使用一个标记位来标记传输的是二进制数据还是utf8文本数据,浏览器会验证标记和传输的内容类型是否符合,如果不符合则会报错断开连接。

所以服务端发送数据的时候需要根据传输的数据类型设置这个标记位,在Workerman中如果是普... 显示全部 »
websocket协议中在协议头中使用一个标记位来标记传输的是二进制数据还是utf8文本数据,浏览器会验证标记和传输的内容类型是否符合,如果不符合则会报错断开连接。

所以服务端发送数据的时候需要根据传输的数据类型设置这个标记位,在Workerman中如果是普通utf8文本,则需要设置
{{{
use Workerman\Protocols\Websocket;
$connection->websocketType = Websocket::BINARY_TYPE_BLOB;
}}}
如果是二进制数据,则需要设置
{{{
use Workerman\Protocols\Websocket;
$connection->websocketType = Websocket::BINARY_TYPE_ARRAYBUFFER;
}}}

注意:如果没设置$connection->websocketType,则默认$connection->websocketType为BINARY_TYPE_BLOB(也就是utf8文本类型)。一般应用传输的都是utf8文本,例如传输的是json数据,所以不用手动设置$connection->websocketType。只有在传输二进制数据时(例如图片数据、protobuffer数据等)才要设置此属性为BINARY_TYPE_ARRAYBUFFER。
0

赞同来自:

参见手册
http://doc3.workerman.net/appendices/about-websocket.html
打开start_gateway.php 都有这段代码,默认是注释的,打开即可。
{{{
// 当客户端连接上来时,设置连接的o... 显示全部 »
参见手册
http://doc3.workerman.net/appendices/about-websocket.html
打开start_gateway.php 都有这段代码,默认是注释的,打开即可。
{{{
// 当客户端连接上来时,设置连接的onWebSocketConnect,即在websocket握手时的回调
$gateway->onConnect = function($connection)
{
$connection->onWebSocketConnect = function($connection , $http_header)
{
// 可以在这里判断连接来源是否合法,不合法就关掉连接
// $_SERVER['HTTP_ORIGIN']标识来自哪个站点的页面发起的websocket链接
if($_SERVER['HTTP_ORIGIN'] != 'http://chat.workerman.net')
{
$connection->close();
}
// onWebSocketConnect 里面$_GET $_SERVER是可用的
// var_dump($_GET, $_SERVER);
};
};
}}}
0

赞同来自:

客户端使用的通讯协议与服务端不一致。 例如服务端是http通讯协议,客户端使用websocket通讯协议访问是无法连接的。如果客户端用websocket协议连接,那么服务端必须也是websocket协议。如果服务端是http协议的服务,那么客户端必须用http... 显示全部 »
客户端使用的通讯协议与服务端不一致。 例如服务端是http通讯协议,客户端使用websocket通讯协议访问是无法连接的。如果客户端用websocket协议连接,那么服务端必须也是websocket协议。如果服务端是http协议的服务,那么客户端必须用http协议访问。

这里的原理类似如果你要和英国人交流,那么要使用英语。如果要和日本人交流,那么要使用日语。这里的语言就类似通讯协议,双方(客户端和服务端)必须使用相同的语言才能交流,否则无法通讯。

通讯协议不一致导致的常见的报错有:

> WebSocket connection to 'ws://xxx.com:xx/' failed: Error during WebSocket handshake: Unexpected response code: xxx

> WebSocket connection to 'ws://xxx.com:xx/' failed: Error during WebSocket handshake: net::ERR_INVALID_HTTP_RESPONSE

解决办法: 从上面两条报错看出,客户端使用的是ws连接是websocket协议。服务端也需要是
websocket协议才行,服务端监听部分代码需要指定websocket协议才能通讯,例如下面这样

如果是gatewayWorker,监听部分代码类似

> // websocket协议,这样客户端才能用ws://...来连。xxxx为端口不用改动
> $gateway = new Gateway('websocket://0.0.0.0:xxxx');
如果是Workerman则是

> // websocket协议,这样客户端才能用ws://...来连。xxxx为端口不用改动
> $worker = new Worker('websocket://0.0.0.0:xxxx');
更多...

基于 Workerman 的简单聊天室 websocket 聊天室

websocket pader 发表了文章 • 0 个评论 • 458 次浏览 • 2016-08-26 14:33

更多...