微信小程序开发(三)

websocket和普通的http请求有点类似。

比如http请求形式为:

http://www.zerotop.top/mini/websocket

而websocket请求的形式为:

ws:www.zerotop.top/mini/websocket

或者:

wss:www.zerotop.top/mini/websocket

wss是使用ssl加密过的websocket,即ws的加密版

既然websocket的请求和http有点类似,那便可以用借鉴http的流程去实现websocket。

可以使用spring框架连接websocket

首先需要pom.xml中引入下面的两个依赖:

org.springframework

spring-websocket

4.3.3.RELEASE

org.springframework

spring-messaging

4.3.3.RELEASE

然后根据spring文档中的方式:

1.需要去创建一个handler去处理请求:

public class WssHandler implementsWebSocketHandler {

publicvoidafterConnectionEstablished

(WebSocketSession session)throws Exception {

// TODOAuto-generated method

}

......

public voidafterConnectionClosed

(WebSocketSessionsession,CloseStatuscloseStatus)

throws Exception {

// TODOAuto-generated method stub

}

}

2.创建一个配置类进行注册:(可以自定义handshake拦截器)

@Configuration

@EnableWebSocket

public class WebSocketConfig extendsWebMvcConfigurerAdapter

implements WebSocketConfigurer {

@Bean

public WebSocketHandlermyHandler() {

return newWssHandler();

}

@Override

public voidregisterWebSocketHandlers

(WebSocketHandlerRegistry registry) {

registry.addHandler(myHandler(), "/websocket")

.addInterceptors(newMyWebSocketInterceptor())

.setAllowedOrigins("*");;

}

}

3.需要再spring-mvc.xml配置文件中配置包扫描,使注解生效。

由于不是所有浏览器都支持websocket,所以spring提供基于SockJS模拟websocket api,于是我们可以写一些页面用于模拟websocket的使用。

4.便可以在微信小程序中进行访问了,我们可以先选中项目设置中的:不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书。

这样我们便可以通过:

wx.connectSocket({

url: 'ws://localhost:8088/mini/websocket'

})

如果校验合法域名的化,可以通过以下方法连接websocket:

wx.connectSocket({

url: 'wss://www.zerotop.top/mini/websocket'

})

wx.onSocketOpen(function (res) {

console.log('WebSocket连接已打开!')

})

连接成功之后,便可以向自己的服务器发送请求或者接收服务器传来的请求。

有问题的可以微信公众号留言,一起交流。希望以上内容对您有所帮助。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180523G10E2300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券