websocket

websocket

1 回复

socket和http能共用443端口嘛?

提问six 回复了问题 • 2 人关注 • 2019-10-06 20:33 • 来自相关话题

1 回复

使用wss连接之后php报SSL错误

提问walkor 回复了问题 • 2 人关注 • 2019-07-14 19:35 • 来自相关话题

1 回复

webscoket 一个字符也无法收取,maxPackageSize的问题,190708下载的最新程序

提问blogdaren 回复了问题 • 3 人关注 • 2019-07-09 00:59 • 来自相关话题

1 回复

我有个关于socket的问题想求教一下

提问walkor 回复了问题 • 2 人关注 • 2019-04-12 10:35 • 来自相关话题

3 回复

workerman作为wss客户端提示Sec-WebSocket-Accept not found

提问中榜 回复了问题 • 4 人关注 • 2019-10-30 16:09 • 来自相关话题

1 回复

不同worker对象之间可以通讯吗

提问朕震惊了 回复了问题 • 2 人关注 • 2019-03-15 14:21 • 来自相关话题

2 回复

tcp 对方发的是个字节数组 我该怎么接受

提问ufuture 回复了问题 • 3 人关注 • 2019-03-14 06:55 • 来自相关话题

2 回复

websocket客户端问题

提问delay 回复了问题 • 3 人关注 • 2019-03-08 18:37 • 来自相关话题

2 回复

Socket问题

提问ehohpo 回复了问题 • 2 人关注 • 2019-02-12 10:23 • 来自相关话题

1 回复

相同目下websocket多开问题

提问喵了个咪 回复了问题 • 2 人关注 • 2018-12-02 12:42 • 来自相关话题

1 回复

ws作为websocket客户端时,如何实现开启多个不同的websocket客户端

提问walkor 回复了问题 • 2 人关注 • 2018-11-26 14:25 • 来自相关话题

2 回复

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

提问yukai 回复了问题 • 2 人关注 • 2018-10-16 11:31 • 来自相关话题

1 回复

我的websocket 和workerman 连接4s就断开了

提问walkor 回复了问题 • 2 人关注 • 2018-08-26 18:27 • 来自相关话题

0 回复

WebSocket配置中会遇到的一些问题

分享jonychen1 发表了文章 • 0 个评论 • 1035 次浏览 • 2018-07-16 18:25 • 来自相关话题

今天来整理一些我在工作中配置上遇到的一些问题。 Q1使用nginx代理后不能访问。报错WARNING:tornado.access:400 GET /ws (127.0.0.1) 0.79ms 或者连接失败后会反复发起连接请求。 需要在 ...查看全部

今天来整理一些我在工作中配置上遇到的一些问题。


Q1使用nginx代理后不能访问。报错WARNING:tornado.access:400 GET /ws (127.0.0.1) 0.79ms 或者连接失败后会反复发起连接请求。
需要在nginx的location中新增如下配置[code]# websocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";[/code]
Q2 跨域问题(spring websocket)
经查阅官方文档springwebsocket 4.1.5版本前默认支持跨域访问,之后的版本默认不支持跨域,需要设置[code].setAllowedOrigins(“”)
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(myWebSocketHandler(), "/echo.do").setAllowedOrigins("
").addInterceptors(new HandshakeInterceptor());


registry.addHandler(myWebSocketHandler(), "/echo").setAllowedOrigins("").addInterceptors(new HandshakeInterceptor())
.withSockJS();
}[/code]
Q3
.do配置导致sockjs失效问题(spring websocket)
web.xml中添加如下配置[code]<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/sockjs/</url-pattern>
</servlet-mapping>[/code]websocket配置类中路径中不加sockjs[code]registry.addHandler(myWebSocketHandler(), "/echo").setAllowedOrigins("
").addInterceptors(new HandshakeInterceptor())
.withSockJS();[/code]前端调用时应加上sockjs[code]websocket = new SockJS("http://127.0.0.1:8080/WebSocketTest001/sockjs/echo");[/code]
Q4 一个websocketsession对应多个session的情况
这是由于尽管每次都能保证有一个websocketsession存在,但客户端没连接一次tomcat都建立一个链接,除非你在请求头里添加cookie:JSESSIONID=xxxxxx


Q5 能收到客户端消息,后台也显示发送,但是客户端收不到
这个问题经我个人观察和猜测,应该是websocketsession没有成功关闭或者成功关闭但是和一个websocketsession对应多个session有关,因为我把上面的问题解决了之后,这个问题也没出现过了。

1 回复

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

提问mdx2007 回复了问题 • 2 人关注 • 2018-05-25 17:35 • 来自相关话题

1 回复

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

提问walkor 回复了问题 • 3 人关注 • 2018-02-10 14:49 • 来自相关话题

2 回复

关于Gateway和页面js连接wss问题

提问xiuwang 回复了问题 • 2 人关注 • 2017-09-18 20:30 • 来自相关话题

1 回复

GatewayWorker 如何在本地搭建wss 。

提问walkor 回复了问题 • 1 人关注 • 2017-07-11 10:05 • 来自相关话题

3 回复

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

提问yuanfang 回复了问题 • 2 人关注 • 2018-06-27 17:20 • 来自相关话题

1 回复

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

提问t182848232 回复了问题 • 3 人关注 • 2017-01-30 12:04 • 来自相关话题

1 回复

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

提问walkor 回复了问题 • 2 人关注 • 2016-12-10 21:31 • 来自相关话题

1 回复

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

提问walkor 回复了问题 • 1 人关注 • 2016-12-09 09:44 • 来自相关话题

1 回复

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

提问six 回复了问题 • 2 人关注 • 2016-11-25 16:17 • 来自相关话题

1 回复

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

提问latin 回复了问题 • 3 人关注 • 2016-11-19 19:45 • 来自相关话题

1 回复

nginx代理转发wss协议

提问walkor 回复了问题 • 1 人关注 • 2016-09-19 13:40 • 来自相关话题

11 回复

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

提问walkor 回复了问题 • 3 人关注 • 2016-09-12 19:53 • 来自相关话题

1 回复

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

提问walkor 回复了问题 • 2 人关注 • 2016-08-31 17:24 • 来自相关话题

0 回复

基于 Workerman 的简单聊天室

分享pader 发表了文章 • 0 个评论 • 1009 次浏览 • 2016-08-26 14:33 • 来自相关话题

DEMO://do[dot]vgot[dot]net:2345/xchat 现在就一个聊天房间,有各种进入离开提醒,有在线人列表功能。 服务端目前就一个 websocket 服务进程,未来再用 GatewayWorker。 ...查看全部

DEMO://do[dot]vgot[dot]net:2345/xchat


现在就一个聊天房间,有各种进入离开提醒,有在线人列表功能。


服务端目前就一个 websocket 服务进程,未来再用 GatewayWorker。


服务端代码很少://github[dot]com/xpader/Navigation/tree/master/Applications/XChat
主要是 JS://github[dot]com/xpader/Navigation/blob/master/static/xchat.js


代码不多,做着玩玩实现个小思路,供大家参考。


为什么不能发链接啊,真是醉了。

1 回复

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

提问walkor 回复了问题 • 3 人关注 • 2019-10-30 13:59 • 来自相关话题

2 回复

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

提问walkor 回复了问题 • 2 人关注 • 2016-08-10 13:58 • 来自相关话题

1 回复

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

提问walkor 回复了问题 • 2 人关注 • 2016-02-24 09:23 • 来自相关话题

1 回复

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

提问walkor 回复了问题 • 1 人关注 • 2016-02-21 15:23 • 来自相关话题

9 回复

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

提问walkor 回复了问题 • 2 人关注 • 2016-01-19 10:39 • 来自相关话题

1 回复

聊天服务器测试的问题

提问walkor 回复了问题 • 2 人关注 • 2016-01-11 16:53 • 来自相关话题

1 回复

ie8是不是连不上websocket

提问walkor 回复了问题 • 2 人关注 • 2016-01-07 15:56 • 来自相关话题

6 回复

问一个安全性问题

提问aguai 回复了问题 • 3 人关注 • 2019-10-30 14:34 • 来自相关话题

5 回复

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

提问walkor 回复了问题 • 1 人关注 • 2019-10-30 14:35 • 来自相关话题

2 回复

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

提问tongxinmao 回复了问题 • 2 人关注 • 2015-12-29 15:47 • 来自相关话题

2 回复

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

提问tongxinmao 回复了问题 • 2 人关注 • 2015-12-29 14:38 • 来自相关话题

条新动态, 点击查看
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。
walkor

walkor 回答了问题 • 2016-01-05 15:14 • 6 个回复 不感兴趣

问一个安全性问题

赞同来自:

参见手册
http://doc3.workerman.net/appendices/about-websocket.html
打开start_gateway.php 都有这段代码,默认是注释的,打开即可。

```php
// 当客户端连接上来时,设置连接的o... 显示全部 »
参见手册
http://doc3.workerman.net/appendices/about-websocket.html
打开start_gateway.php 都有这段代码,默认是注释的,打开即可。

```php
// 当客户端连接上来时,设置连接的onWebSocketConnect,即在websocket握手时的回调
$gateway->onConnect = function($connection)
{
$connection->onWebSocketConnect = function($connection , $http_header)
{
// 可以在这里判断连接来源是否合法,不合法就关掉连接
// $_SERVER标识来自哪个站点的页面发起的websocket链接
if($_SERVER != 'http://chat.workerman.net')
{
$connection->close();
}
// onWebSocketConnect 里面$_GET $_SERVER是可用的
// var_dump($_GET, $_SERVER);
};
};
```
walkor

walkor 回答了问题 • 2017-03-29 10:22 • 3 个回复 不感兴趣

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

赞同来自:

客户端使用的通讯协议与服务端不一致。 例如服务端是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');
3 回复

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

提问redyn 回复了问题 • 1 人关注 • 2019-10-30 19:55 • 来自相关话题

1 回复

socket和http能共用443端口嘛?

回复

提问six 回复了问题 • 2 人关注 • 2019-10-06 20:33 • 来自相关话题

1 回复

使用wss连接之后php报SSL错误

回复

提问walkor 回复了问题 • 2 人关注 • 2019-07-14 19:35 • 来自相关话题

1 回复

webscoket 一个字符也无法收取,maxPackageSize的问题,190708下载的最新程序

回复

提问blogdaren 回复了问题 • 3 人关注 • 2019-07-09 00:59 • 来自相关话题

1 回复

我有个关于socket的问题想求教一下

回复

提问walkor 回复了问题 • 2 人关注 • 2019-04-12 10:35 • 来自相关话题

3 回复

workerman作为wss客户端提示Sec-WebSocket-Accept not found

回复

提问中榜 回复了问题 • 4 人关注 • 2019-10-30 16:09 • 来自相关话题

1 回复

不同worker对象之间可以通讯吗

回复

提问朕震惊了 回复了问题 • 2 人关注 • 2019-03-15 14:21 • 来自相关话题

2 回复

tcp 对方发的是个字节数组 我该怎么接受

回复

提问ufuture 回复了问题 • 3 人关注 • 2019-03-14 06:55 • 来自相关话题

2 回复

websocket客户端问题

回复

提问delay 回复了问题 • 3 人关注 • 2019-03-08 18:37 • 来自相关话题

2 回复

Socket问题

回复

提问ehohpo 回复了问题 • 2 人关注 • 2019-02-12 10:23 • 来自相关话题

1 回复

相同目下websocket多开问题

回复

提问喵了个咪 回复了问题 • 2 人关注 • 2018-12-02 12:42 • 来自相关话题

1 回复

ws作为websocket客户端时,如何实现开启多个不同的websocket客户端

回复

提问walkor 回复了问题 • 2 人关注 • 2018-11-26 14:25 • 来自相关话题

2 回复

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

回复

提问yukai 回复了问题 • 2 人关注 • 2018-10-16 11:31 • 来自相关话题

1 回复

我的websocket 和workerman 连接4s就断开了

回复

提问walkor 回复了问题 • 2 人关注 • 2018-08-26 18:27 • 来自相关话题

1 回复

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

回复

提问mdx2007 回复了问题 • 2 人关注 • 2018-05-25 17:35 • 来自相关话题

1 回复

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

回复

提问walkor 回复了问题 • 3 人关注 • 2018-02-10 14:49 • 来自相关话题

2 回复

关于Gateway和页面js连接wss问题

回复

提问xiuwang 回复了问题 • 2 人关注 • 2017-09-18 20:30 • 来自相关话题

1 回复

GatewayWorker 如何在本地搭建wss 。

回复

提问walkor 回复了问题 • 1 人关注 • 2017-07-11 10:05 • 来自相关话题

3 回复

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

回复

提问yuanfang 回复了问题 • 2 人关注 • 2018-06-27 17:20 • 来自相关话题

1 回复

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

回复

提问t182848232 回复了问题 • 3 人关注 • 2017-01-30 12:04 • 来自相关话题

1 回复

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

回复

提问walkor 回复了问题 • 2 人关注 • 2016-12-10 21:31 • 来自相关话题

1 回复

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

回复

提问walkor 回复了问题 • 1 人关注 • 2016-12-09 09:44 • 来自相关话题

1 回复

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

回复

提问six 回复了问题 • 2 人关注 • 2016-11-25 16:17 • 来自相关话题

1 回复

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

回复

提问latin 回复了问题 • 3 人关注 • 2016-11-19 19:45 • 来自相关话题

1 回复

nginx代理转发wss协议

回复

提问walkor 回复了问题 • 1 人关注 • 2016-09-19 13:40 • 来自相关话题

11 回复

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

回复

提问walkor 回复了问题 • 3 人关注 • 2016-09-12 19:53 • 来自相关话题

1 回复

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

回复

提问walkor 回复了问题 • 2 人关注 • 2016-08-31 17:24 • 来自相关话题

1 回复

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

回复

提问walkor 回复了问题 • 3 人关注 • 2019-10-30 13:59 • 来自相关话题

2 回复

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

回复

提问walkor 回复了问题 • 2 人关注 • 2016-08-10 13:58 • 来自相关话题

1 回复

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

回复

提问walkor 回复了问题 • 2 人关注 • 2016-02-24 09:23 • 来自相关话题

1 回复

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

回复

提问walkor 回复了问题 • 1 人关注 • 2016-02-21 15:23 • 来自相关话题

9 回复

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

回复

提问walkor 回复了问题 • 2 人关注 • 2016-01-19 10:39 • 来自相关话题

1 回复

聊天服务器测试的问题

回复

提问walkor 回复了问题 • 2 人关注 • 2016-01-11 16:53 • 来自相关话题

1 回复

ie8是不是连不上websocket

回复

提问walkor 回复了问题 • 2 人关注 • 2016-01-07 15:56 • 来自相关话题

6 回复

问一个安全性问题

回复

提问aguai 回复了问题 • 3 人关注 • 2019-10-30 14:34 • 来自相关话题

5 回复

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

回复

提问walkor 回复了问题 • 1 人关注 • 2019-10-30 14:35 • 来自相关话题

2 回复

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

回复

提问tongxinmao 回复了问题 • 2 人关注 • 2015-12-29 15:47 • 来自相关话题

2 回复

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

回复

提问tongxinmao 回复了问题 • 2 人关注 • 2015-12-29 14:38 • 来自相关话题

4 回复

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

回复

提问walkor 回复了问题 • 4 人关注 • 2015-12-29 14:37 • 来自相关话题

1 回复

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

回复

提问walkor 回复了问题 • 2 人关注 • 2015-12-24 16:35 • 来自相关话题

0 回复

WebSocket配置中会遇到的一些问题

分享jonychen1 发表了文章 • 0 个评论 • 1035 次浏览 • 2018-07-16 18:25 • 来自相关话题

今天来整理一些我在工作中配置上遇到的一些问题。 Q1使用nginx代理后不能访问。报错WARNING:tornado.access:400 GET /ws (127.0.0.1) 0.79ms 或者连接失败后会反复发起连接请求。 需要在 ...查看全部

今天来整理一些我在工作中配置上遇到的一些问题。


Q1使用nginx代理后不能访问。报错WARNING:tornado.access:400 GET /ws (127.0.0.1) 0.79ms 或者连接失败后会反复发起连接请求。
需要在nginx的location中新增如下配置[code]# websocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";[/code]
Q2 跨域问题(spring websocket)
经查阅官方文档springwebsocket 4.1.5版本前默认支持跨域访问,之后的版本默认不支持跨域,需要设置[code].setAllowedOrigins(“”)
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(myWebSocketHandler(), "/echo.do").setAllowedOrigins("
").addInterceptors(new HandshakeInterceptor());


registry.addHandler(myWebSocketHandler(), "/echo").setAllowedOrigins("").addInterceptors(new HandshakeInterceptor())
.withSockJS();
}[/code]
Q3
.do配置导致sockjs失效问题(spring websocket)
web.xml中添加如下配置[code]<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/sockjs/</url-pattern>
</servlet-mapping>[/code]websocket配置类中路径中不加sockjs[code]registry.addHandler(myWebSocketHandler(), "/echo").setAllowedOrigins("
").addInterceptors(new HandshakeInterceptor())
.withSockJS();[/code]前端调用时应加上sockjs[code]websocket = new SockJS("http://127.0.0.1:8080/WebSocketTest001/sockjs/echo");[/code]
Q4 一个websocketsession对应多个session的情况
这是由于尽管每次都能保证有一个websocketsession存在,但客户端没连接一次tomcat都建立一个链接,除非你在请求头里添加cookie:JSESSIONID=xxxxxx


Q5 能收到客户端消息,后台也显示发送,但是客户端收不到
这个问题经我个人观察和猜测,应该是websocketsession没有成功关闭或者成功关闭但是和一个websocketsession对应多个session有关,因为我把上面的问题解决了之后,这个问题也没出现过了。

0 回复

基于 Workerman 的简单聊天室

分享pader 发表了文章 • 0 个评论 • 1009 次浏览 • 2016-08-26 14:33 • 来自相关话题

DEMO://do[dot]vgot[dot]net:2345/xchat 现在就一个聊天房间,有各种进入离开提醒,有在线人列表功能。 服务端目前就一个 websocket 服务进程,未来再用 GatewayWorker。 ...查看全部

DEMO://do[dot]vgot[dot]net:2345/xchat


现在就一个聊天房间,有各种进入离开提醒,有在线人列表功能。


服务端目前就一个 websocket 服务进程,未来再用 GatewayWorker。


服务端代码很少://github[dot]com/xpader/Navigation/tree/master/Applications/XChat
主要是 JS://github[dot]com/xpader/Navigation/blob/master/static/xchat.js


代码不多,做着玩玩实现个小思路,供大家参考。


为什么不能发链接啊,真是醉了。