用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

1

主题

1

帖子

8

积分

新手上路

Rank: 1

积分
8
2018-8-9 15:35:35 w廖穗秋19 新手上路 楼主 096
在本地开发调试下, 前端代码是copy小程序api的。


如下:
20180809152608_111.jpg
后台服务器 用的 java, 测试代码如下:

@ServerEndpoint(value = "/websocket")@Component
public class MyWebSocket {
    //静态变量,用来记录当前在线连接数。应该把它设计成线程安全的。
    private static int onlineCount = 0;

    //concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。
    private static CopyOnWriteArraySet<MyWebSocket> webSocketSet = new CopyOnWriteArraySet<MyWebSocket>();

    //与某个客户端的连接会话,需要通过它来给客户端发送数据
    private Session session;

    /**
     * 连接建立成功调用的方法*/
    @OnOpen
    public void onOpen(Session session) {
        this.session = session;
        webSocketSet.add(this);     //加入set中
        addOnlineCount();           //在线数加1
        System.out.println("有新连接加入!当前在线人数为" + getOnlineCount());
         
    }

    /**
     * 连接关闭调用的方法
     */
    @OnClose
    public void onClose() {
        webSocketSet.remove(this);  //从set中删除
        subOnlineCount();           //在线数减1
        System.out.println("有一连接关闭!当前在线人数为" + getOnlineCount());
    }

    /**
     * 收到客户端消息后调用的方法
     *
     * @param message 客户端发送过来的消息*/
    @OnMessage
    public void onMessage(String message, Session session) {
        System.out.println("来自客户端的消息:" + message);
    }

    /**
     * 群发自定义消息
     * */
    public static void sendInfo(String message) {
       System.out.println("send msg["+message+"]");
        for (MyWebSocket item : webSocketSet) {
            try {
                item.session.getBasicRemote().sendText(message);
            } catch (IOException e) {
               e.printStackTrace();
               // continue;
            }
        }
    }

    /**
     * 群发自定义消息  test
     * */
    public static void sendInfo() {
        System.out.println(11111111);
    }

    public static synchronized int getOnlineCount() {
        return onlineCount;
    }

    public static synchronized void addOnlineCount() {
        MyWebSocket.onlineCount++;
    }

    public static synchronized void subOnlineCount() {
        MyWebSocket.onlineCount--;
    }
}



结果,报的错是:

20180809153117_22121.jpg

请各位大大们,出手相救~

   PS:
        用的是SpringBoot搭建的 ,   我自己测试的demo是成功的,但是 搬到小程序这 就失败了。


发新帖
您需要登录后才可以回帖 登录 | 立即注册