Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • N node-http-proxy
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 482
    • Issues 482
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 102
    • Merge requests 102
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • http ... PARTY!
  • node-http-proxy
  • Merge requests
  • !978

Adding ability to intercept and alter websocket messages.

  • Review changes

  • Download
  • Email patches
  • Plain diff
Closed Administrator requested to merge github/fork/RoscoP/websocket-intercept-msg into master Mar 15, 2016
  • Overview 2
  • Commits 1
  • Pipelines 0
  • Changes 1

Created by: RoscoP

I created some changes in order to help facility intercepting and modifying websocket messages. I highly doubt this is something you would want to take in as is, but proved to be valuable to me and will hopefully for others.

When calling createProxyServer define callback functions in order to modify (and observe) the websocket message.

var proxySettings = {
  // ...
  ws: true,
    wsOnMessageToClient: function(data, flags) {
    // modify or observe data
    return yourModifyingFunction(data);
  },
  wsOnMessageToServer: function(data, flags) {
    // modify or observe data
    return data;
  }
};

You can also attach event listeners to only observe the messages.

var proxy = httpProxy.createProxyServer(proxySettings)
  .on('proxyReqWs', function(proxyReqWs, req, clientSocket) {
    proxyReqWs.on('upgrade', function(res, serverSocket) {
      proxyReqWs
        .on('message_toserver', function(data, flags) {
          console.log('TOSERVER:', data);
        }).on('message_toclient', function(data, flags) {
          console.log('TOCLIENT:', data);
        });
    });
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/RoscoP/websocket-intercept-msg